2011-08-01 16 views
6

Googleタスクサービスを使用するWindows Phone 7用の小さなアプリを試してみましたが、問題は私がログインにパスすることができないことです。WPAでGoogle oAuthを使用

ドキュメントに記載されているすべての手順を読み、それに続いて
http://code.google.com/apis/accounts/docs/OAuth2.html#IA私はWebコントロールを使ってログインする必要があります。

ユーザー名のパスワードを期待して、バックグラウンドで認証トークンを取得する方法はありますか?

答えて

15

ClientLoginを使用すると、バックグラウンドで作業を行うことができますが、置き換え中(ゆっくり)、すべてのGoogleアカウント(2ステップ)で動作しないため、oAuth2を使用することをお勧めします。

私はどのように

それは確かIsScriptEnabled="true"はその後、本当に重要な部分は、リダイレクトURLです

https://accounts.google.com/o/oauth2/auth?client_id=xxx&redirect_uri=https://www.mydomain.com/oauth2callback&scope=xxx&response_type=code 

でそれを指して作り、WebBrowser制御開いています。次に、コントロールをWebBrowserコントロールにリンクして、そのURLへのリダイレクトを傍受します。

<phone:WebBrowser Name="webbrowser" Navigating="webbrowser_Navigating" IsScriptEnabled="true" /> 

private void webbrowser_Navigating(object sender, NavigatingEventArgs e) { 
    if (e.Uri.Host.Equals("www.mydomain.com")) { 
    e.Cancel = true; 
    HandleOAuthResponse(e.Uri.Query); 
    } 
} 

これは、あなたがしてドキュメントの残りの部分を追跡し、アクティブな認証を維持するために30分とリフレッシュトークンを持続させるトークンのためにそれを交換code=xxxを持っているとGoogleがリダイレクトクエリ文字列をあなたに戻って得られます。

+0

これは多くの助けをしました...ありがとう – Apoorva

2

look at this postを持っているのは約twitterクライアントですが、twitterもOAuthを使用しています。

EDIT

私はこの上の続きを読むと、アプリへのアクセスコードをコピーして、ユーザーにWebページを使用して持つことが必須であるので、問題のようです。 It appears to be hard/impossible to scrape the Webbrowser現時点で実際のソリューションへの参照は見つかりませんでした。

0

私はあなたがwebBrowser.SaveToString()メソッドを使用してwebBrowserをスクラップできると思います。

-2

実際には、e.Uri.ToString()を使用してブラウザURIをスクレープし、replaceメソッドを使用して不要なアイテムを削除できます。 thestring.Replace("http://fakeuri.com/code=","");

私はアクセストークンを持っているだけの問題です。

関連する問題