1

私は少し混乱しています。Google+ Android SDK を使用して、ユーザーをアプリにログインさせ、プロフィールの詳細を取得します。https://developers.google.com/+/api/oauthのマニュアルには明確に記載されています

スコープは暗黙的に含まれており、ユーザーにとって紛らわしいアクセス許可ダイアログが作成されるため、スコープを要求したり、スコープと組み合わせたりしないでください。userinfo.profileplus.meplus.login

だから私は範囲だけを求めましたplus.login(そしてuserinfo.email範囲ですが、それは関係ありません)。呼び出してトークンのデバッグを試みました

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ACCESS_TOKEN

これが私が返すものです:

{
    "issued_to": "534771845378-3668o318pburvuhrukgj7pao3ir****.apps.googleusercontent.com",
    "audience": "534771845378-3668o318pburvuhrukgj7pao****.apps.googleusercontent.com",
    "user_id": "106027222137637*****",
    "scope": "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email",
    "expires_in": 2279,
    "email": "****@****.com",
    "verified_email": true,
    "access_type": "online"
}

そして、これが私が呼び出してユーザープロファイルを取得しようとして得た応答です

https://www.googleapis.com/oauth2/v2/userinfo?access_token=ACCESS_TOKEN

{
    "id": "10602722213763777****",
    "email": "****@****.com",
    "verified_email": true,
    "hd": "****.com"
}

明らかに、この応答にはユーザー プロファイルの詳細が含まれていないことがわかります。

userinfo.profileGoogle が言うように、スコープ追加すると、ユーザーのプロファイルの詳細に関する適切な応答が得られます。

Google で何が起こっていますか?

4

3 に答える 3

1

これはトリッキーです。次のスコープを使用してください

scope = https://www.googleapis.com/auth/userinfo.email+profile

これが必要な場合は、賛成票を投じることを忘れないでください。

于 2015-11-19T08:03:57.493 に答える
0

次のスコープを使用して電子メールとプロファイルを取得したことがわかりました。

https://www.googleapis.com/auth/plus.login」、「メール」、「プロフィール」

于 2014-01-22T06:36:17.000 に答える
0

理由はわかりませんが、同じ API 呼び出しでメールとユーザーのプロファイルを取得できないようです。

スコープを要求するときは、最初にアクセス トークンを使用してエンドポイントを呼び出しplus.login、電子メール アドレスを取得する必要があります。 次に、ユーザーのプロファイルの詳細が必要な場合は、エンドポイントを呼び出す必要があります (もちろんアクセス トークンを使用して)。userinfo.emailhttps://www.googleapis.com/oauth2/v2/userinfo
https://www.googleapis.com/plus/v1/people/me

これにより、Google ?

于 2013-09-22T13:38:12.827 に答える