2017-10-06 21 views
2

このため、guideのようにGoogleのユーザーアカウントをAPI.AI上の自分のエージェントにリンクすることができ、これに似たanswerが見つかりました。ユーザーIDとアクセストークンを使用してGoogleユーザープロファイルを取得する

"プロファイル"と "メール"がクライアントスコープとして追加されました。これまでのところ、私のaccesTokenを

"user":{ 
    "accessToken":"TWWM**********************bgf", 
    "locale":"en-US", 
    "userId":"AKL*********************exlT" 
} 

:今、アシスタントがoriginalRequest->データ - > inputs->ユーザー

の下で、私のフルフィルメントウェブフックにこのような何かをユーザーIDとAccessTokenを送ってきた

常にGoogleによって無効にされます。

私は自分のトークンをチェックした場合:それは私がそのような名、姓として、基本的なユーザプロファイル情報を取得するにはどうすればよい

{ 
    "error_description": "Invalid Value" 
} 

がaccessToken上で与えられた電子メールを無効としてレンダリング

https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=TWWM**********************bgf 

をとUserId?

どのGoogleApiエンドポイントを呼び出す必要がありますか?

答えて

1

ここに入力されたuserIdフィールドはGoogle IDではありません。これは匿名のアシスタント特有のIDで、セッション間で匿名でトラッキングするために使用されますが、ユーザーが望む場合には取り消すことができます。 OAuthを通じて追加情報を取得することは有用ではありません。

次に、試験中にaccessTokenの寿命が限られていることに注意してください。通常は約1時間です。その時間後にテストしている場合、情報を取得しようとしているエンドポイントはエラーを返します。 (実際にエラーが何であるかについてはOAuthが曖昧になりがちです)

https://www.googleapis.com/oauth2/v3/tokeninfoエンドポイントが実際にがアクセストークンを受け入れるかどうかわかりません。少なくとも、私はそれがそうであると言う文書を見つけることができませんでした。これは主に、他のトークンをのアクセストークンと交換するために使用されます。

リクエストした範囲で必要な情報を取得するためのオプションがいくつかあります。あなたがpeople.getメソッドを使用していると思いますGoogle People APIを使用して

Authorization: Bearer TWWM**********************bgf 

:(。ここに述べた2よりも、おそらくそれ以上)のいずれの場合も、あなたは、HTTPヘッダーAuthorizationaccessTokenを渡すと思います。ただ名前と電子メールアドレスフィールドを取得するには、そのよう

https://people.googleapi.com/v1/people/me?personFields=names,emailAddresses 
としてURLを使用することができます

plus.people.getは似ているが、別の形式で情報を返します。このケースでは、トークン情報のエンドポイントのみ `access_token`、` id_tokenについての情報を取得するために使用される「主に、アクセストークンのために他のトークンを交換するために使用される、」そのよう

https://www.googleapis.com/plus/v1/people/me 
+0

としてURLを使用したいです'または' token_handle'(apiエクスプローラ[here](https://developers.google.com/apis-explorer/#p/oauth2/v2/oauth2.tokeninfo))を参照してください。ほとんどの場合、トークンの有効性をチェックするために使用されます –