0

わかりました、これが私のコードのスニペットです

$client = new Google_Client();
$client->setScopes(array('https://www.googleapis.com/auth/plus.me','https://www.googleapis.com/auth/userinfo.email'));
$plus = new Google_PlusService($client);

if (isset($_SESSION['token'])) {
  $client->setAccessToken($_SESSION['token']);
} else {
    $_SESSION['auth_token'] = $client->authenticate();
}

そして今、次のようなものを含む $_SESSION['auth_token'] を取得しました

{"access_token":"ya29.AHESblablablabalbalbalbagTUI4-MfZvwtb6A","token_type":"Bearer","expires_in":3600,"id_token":"blablablabalbalbalba.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwiY2lkIjoiNzAzNTg5ODA3MjMxLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXpwIjoiNzAzNTg5ODA3MjMxLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXVkIjoiNzAzNTgblablablabalbalbalbaRlbnQuY29tIiwiaGQiOiJnZW9mbGV4LmNvbS5teSIsInZlcmlmaWVkX2VtYWlsIjoidHJ1ZSIsImVtYWlsX3blablablabalbalbalbaFzei00N25nN3VoLU5NUmh3IiwiYXRfaGFzaCI6IllEeC13UXN6LTQ3bmc3dWgtTk1SaHciLCJpYXQiOjEzNzQ1NjA1NDcsImV4cCI6MTM3NDU2NDQ0N30.ek1FX-pY8BdaI8sDhA0rwmiIDyBV6pHPvBi-l7BxDJCR-YoDQGFN8y-kA1xg-vmoReiVCwhvQhHK__jc-xFSLfJDLbwk-UGyRKu_O7ZCaSviP7WupexIYvLGCyvgLBdjG3K7UIcq0o3L15mQPvQJr9LA7325gwEOZ12Pc1lAHKw","refresh_token":"1\/Y7oilVvUUutfkKMDfblablablabalbalbalbaE","created":1374560847}

私の質問は、どうすればユーザーの電子メールを取得できますか? 私はあなたがただ電話できることを知っています

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

しかし、それはユーザーの電子メールを取得するための「公式」の方法ですか? ここからhttps://developers.google.com/accounts/docs/OAuth2Login#exchangecodeだから

Google との認証フロー中にアプリケーションが受け取ったアクセス トークンを使用して、ユーザーに関する追加のプロファイル情報を取得できます。Google は、使用を簡素化するために、さまざまなエンドポイントの動作を変更していることに注意してください。現在、既存の動作に基づいて次のことをお勧めします。Login with Google+ を使用している場合は、アクセス トークンを使用してHTTPS GET リクエストをhttps://www.googleapis.com/plus/v1/people/meに送信し、People API からユーザー プロファイル情報を取得する必要があります。リクエスト。

したがって、最良の方法は googleapis.com に対して HTTPS GET リクエストを実行することだと思いますが、その方法がわかりません。誰かが先導できますか?

4

1 に答える 1