34

リンク: https://sites.google.com/site/oauthgoog/Home/emaildisplayscope

上記のリンクから、メールスコープを追加します

https://www.googleapis.com/auth/plus.me
https://www.googleapis.com/auth/userinfo.email

しかし、私は次のことを理解していません

有効な OAuth トークンを取得したら、それを使用して Email Display API エンドポイントへの API 呼び出しを行うことができます: https://www.googleapis.com/userinfo/email トークンが有効でない場合、401 エラーが返されます。トークンが有効な場合、ユーザーの電子メール アドレスが返されます。API はブール値も返し、ユーザーがそのメール アドレスを所有していることを Google が確認したかどうかを示します。ただし、ほとんどのインストール済みアプリケーションはその値を無視します。

Email Display API エンドポイントを呼び出す方法は? https://www.googleapis.com/userinfo/email の使用

4

4 に答える 4

54

スコープを次のように設定します。

そして、エンドポイントを使用します。

https://www.googleapis.com/oauth2/v1/userinfo?alt=json

使用法:

get https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=youraccess_token

JSONを取得します:

{ "id": "xx", 
  "name": "xx", 
  "given_name": "xx", 
  "family_name": "xx", 
  "link": "xx", 
  "picture": "xx", 
  "gender": "xx", 
  "locale": "xx" 
}
于 2012-07-23T03:43:01.473 に答える
34

Google+ サインインのスコープが変更されました。

スコープを次のように設定します。

https://www.googleapis.com/auth/plus.login
https://www.googleapis.com/auth/userinfo.email

JavaScript 呼び出しは次のようになります。

gapi.client.load('oauth2', 'v2', function() {
  gapi.client.oauth2.userinfo.get().execute(function(resp) {
    // Shows user email
    console.log(resp.email);
  })
});

gapi.client.load('plus', 'v1', function() {
  gapi.client.plus.people.get( {'userId' : 'me'} ).execute(function(resp) {
    // Shows profile information
    console.log(resp);
  })
});

詳細情報https://developers.google.com/+ .

編集: plus.me または userinfo.profile のスコープは必要ないことに注意してください。

于 2013-03-13T12:12:07.527 に答える
17

Google+ で GoogleAPI を使用するようになりました

2013 年 12 月現在、最新の Web サイトは次のとおりです。

https://developers.google.com/+/

次に、SignIn for Web

https://developers.google.com/+/web/signin/

サインイン フローの選択

→クライアント側の流れ

-> JavaScript でサインイン フローを開始します(これは最新のテクノロジだと思います) 。

https://developers.google.com/+/web/signin/javascript-flow

JavaScript を使用して Google+ サインイン フローを開始する

gapi.auth.signIn() メソッドを使用して、Google+ サインイン フローを開始できます。この方法を使用すると、ユーザーにアプリの承認とサインインを求める方法とタイミングを柔軟に決定できます。

https://developers.google.com/+/web/api/javascript#gapiauthsigninparameters

gapi.auth.signIn(パラメータ)

クライアント側の Google+ サインイン OAuth 2.0 フローを開始します。gapi.auth.authorize() と同様ですが、このメソッドは Android アプリの無線インストールを含む高度な Google+ サインイン機能をサポートしています。このメソッドは、Google+ サインイン ボタン ウィジェットの使用に代わる JavaScript です。

https://developers.google.com/+/web/signin/javascript-flow

  • gapi.auth.signIn()でサインイン フローをトリガーするページを試す

https://google-developers.appspot.com/+/demos/signin_demo_render (ソースコード)

あなたはこれを試して、あなた自身のためにフォローしてください

ステップ 1: クライアント ID とクライアント シークレットを作成する

次の手順は無視してください。

実際には clientID のみが必要で、上記のTry itのソース コードにあるものを置き換えます。

スコープを追加 https://www.googleapis.com/auth/userinfo.email

var options = {
  'callback': loginFinished,
  'approvalprompt': 'force',
  'clientid': 'YOURID.apps.googleusercontent.com',
  'scope': 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email',
  'requestvisibleactions': 'http://schemas.google.com/CommentActivity http://schemas.google.com/ReviewActivity',
  'cookiepolicy': 'single_host_origin'
};

追加

gapi.client.load('oauth2', 'v2', function()
  {
    gapi.client.oauth2.userinfo.get()
      .execute(function(resp)
      {
        // Shows user email
        console.log(resp.email);
      });
  });

上記に基づいた完全に機能する簡潔なコードを次に示します。

<html>
<head>
  <title>Google+ Sign-in button demo: rendering with JavaScript</title>
  <style type="text/css">
  html, body { margin: 0; padding:0;}
  #signin-button {
   padding: 5px;
  }
  #oauth2-results pre { margin: 0; padding:0; width: 600px;}
  .hide { display: none;}
  .show { display: block;}
  </style>

  <script src="https://apis.google.com/js/client:platform.js" type="text/javascript"></script>
  <script type="text/javascript">
var loginFinished = function(authResult)
{
  if (authResult)
  {
    console.log(authResult);
  }

  gapi.client.load('oauth2', 'v2', function()
  {
    gapi.client.oauth2.userinfo.get()
      .execute(function(resp)
      {
        // Shows user email
        console.log(resp.email);
      });
  });

};

var options = {
  'callback': loginFinished,
  'approvalprompt': 'force',
  'clientid': 'YOURID.apps.googleusercontent.com',
  'scope': 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email',
  'requestvisibleactions': 'http://schemas.google.com/CommentActivity http://schemas.google.com/ReviewActivity',
  'cookiepolicy': 'single_host_origin'
};

var renderBtn = function()
{
  gapi.signin.render('renderMe', options);
}
  </script>

</head>
<body onload ="renderBtn()">
   <div id="renderMe"></div>  
</body>
</html>

HTML 出力はありませんが、コンソールです。ブラウザの Developers Console ツールを開いて結果を表示します。

于 2013-12-10T11:58:46.067 に答える