2012-01-26 19 views
1

私は現在、Googleプラスのアプリを開発中です。 google plus APIからアクセストークンを取得したいOAuth 2.0を使用してアクセストークンを取得したい //www.googleapis:私は、URLGoogle Plus APIのOAuthアクセストークンの取得

「https://accounts.google.com/o/oauth2/auth?client_id=752264386186- 72f3ef2ok1j3k8g12h7hg8k5kjt9s9si.apps.googleusercontent.com &範囲= httpsに構築しました。 COM /認証/ plus.me & REDIRECT_URI = URN:IETF:WG:OAuthの:2.0:OOB私は、ブラウザによって貼り付け& response_type =コード」

は、Googleアカウントでログインするように求められます。だから私は自分の資格情報を入力すると、「アクセスを許可する」または「いいえ」と尋ねます。私は "アクセスを許可する"をクリックすると私のブラウザにアクセストークンが与えられます。 C#コードを使用して上記の手順を実行します。

コードから認証ページに移動し、認証が成功したらアクセストークンをフェッチできます。私はhttpwebrequestまたはwebclientを使用するか、シャープに休憩を取るべきですか?サンプルコードも提供してください。

+1

ネット上にはOAuth 2.0 SDKがありますが、問題はユーザーがトランザクションを確認できるようにすることです。あなたはその部分を避けて多くの運を持たないでしょう。 –

+0

私が参照できるリンクまたはサンプルコード? – Mugu

+0

組み込みのWebブラウザーコントロールで使用するように表示し、Navigatingイベントを聞き取り、トークンを探します。 –

答えて

1

WebBrowserを使用しても問題ない場合は、Foursquare APIでどのように同じことをしたかを簡単な例で説明します。このコードは、それが行く方法をテストするためだけに書かれているので、私はあなたがaccess_tokenはとコールバックURIを取得してしまう、あなたがアクセスを許可していたら、それはなど

private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     string address = 
      "https://foursquare.com/oauth2/authenticate" + 
      "?client_id=" + CLIENT_ID + 
      "&response_type=token" + 
      "&redirect_uri=" + CALLBACK_URI; 
     webBrowser1.Navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(webBrowser1_Navigated); 
     webBrowser1.Navigate(new Uri(address, UriKind.Absolute)); 
    } 

    void webBrowser1_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e) 
    { 
     response = e.Uri.ToString(); 
     System.Diagnostics.Debug.WriteLine(e.Uri.ToString()); 
     if (response.LastIndexOf("access_token=") != -1) 
     { 
      string token = response.Substring(response.LastIndexOf("#access_token=") + "#access_token=".Length); 
      System.Diagnostics.Debug.WriteLine("TOKEN: " + token); 
     } 
    } 

エラー処理のようないくつかの重要な事柄を欠けていると確信しています。 webBrowser1_Navigatedは、(埋め込みWebブラウザの別のページに移動するたびに)呼び出される可能性があることに注意してください。

+0

申し訳ありません私は "応答"タイプは何か1つの質問があります。私は応答がHttpWebResponse型であると宣言したときにエラーをスローします。 – Mugu

+0

は問題なく問題なく動作します – Mugu

+0

e.Uri.ToString()から取得した文字列です。 e.Uri.AbsoluteUriを使用する方がよいかもしれませんが。 –

0

このコードは、文字通り素晴らしい、EPICです。

+2

あなたのコメントを回答ではなく、コメント欄に入れてください。 :) – balanv

関連する問題