PHP Google API クライアント ライブラリを使用して、OAuth2 を使用して Google アカウントからユーザー情報を取得しています。ただし、Google のドキュメントに記載されている内容にもかかわらず、トークンが正常に返され、スコープから他のすべての情報を取得できるにもかかわらず、ユーザーの国またはタイムゾーンの情報にアクセスできないようです。userinfo.profile
ここでint heir ライブラリで提供されているサンプル コードを使用しましたvar_dump($user)
。そのファイルの 49 行目にある場合、次の出力が得られます (プライバシーに関する懸念のために編集されています)。
array(10) {
["id"]=>
string(21) "123" /* Redacted */
["email"]=>
string(13) "XXX@gmail.com" /* Redacted */
["verified_email"]=>
bool(true)
["name"]=>
string(14) "Sherif Ramadan"
["given_name"]=>
string(6) "Sherif"
["family_name"]=>
string(7) "Ramadan"
["link"]=>
string(27) "https://plus.google.com/XXX" /* Redacted */
["picture"]=>
string(0) "https://lh3.googleusercontent.com/-XXX-Zs/AAAAAAAAAA/AAAAAAAAA/cmBwzMLdYqM/photo.jpg" /* Redacted */
["gender"]=>
string(4) "male"
["locale"]=>
string(2) "en"
}
ご覧のとおり、タイムゾーンまたは国の情報は利用できません。https://www.googleapis.com/auth/plus.login
、https://www.googleapis.com/auth/plus.me
、https://www.googleapis.com/auth/userinfo.email
、 、 https://www.googleapis.com/auth/userinfo.profile
などのさまざまなスコープも試しましたが、https://www.googleapis.com/auth/userinfo
うまくいきませんでした。それらはすべて同じ結果を提供するようです。
セッション/キャッシュやその他の側面が要因ではないことをできる限り確認しました。取得した認証を更新することさえあります。何も機能しません。
PHP 用の Google API クライアント ライブラリを使用してこの情報を適切に取得する方法についての洞察をお持ちの方は、非常に役立ちます。