3

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.loginhttps://www.googleapis.com/auth/plus.mehttps://www.googleapis.com/auth/userinfo.email、 、 https://www.googleapis.com/auth/userinfo.profileなどのさまざまなスコープも試しましたが、https://www.googleapis.com/auth/userinfoうまくいきませんでした。それらはすべて同じ結果を提供するようです。

セッション/キャッシュやその他の側面が要因ではないことをできる限り確認しました。取得した認証を更新することさえあります。何も機能しません。

PHP 用の Google API クライアント ライブラリを使用してこの情報を適切に取得する方法についての洞察をお持ちの方は、非常に役立ちます。

4

2 に答える 2

3

Google Calendar API -> CalendarList -> list メソッドは、私が使用しているユーザーのカレンダーのタイム ゾーンを返します。同意します。タイム ゾーンは plus->people->get の一部である必要があります。

ドキュメント: https://developers.google.com/google-apps/calendar/v3/reference/calendarList/list

于 2014-05-17T05:17:05.123 に答える