2016-11-10 18 views
2

「invalid_grant」がgoogle apiから取得した唯一の「回答」であることはよく似ていますが、それらはすべて古いか、同じメッセージに。OAuth2トークンをリフレッシュするときにエラーが発生する@ Google_CalendarServices(php)

奇妙な部分は、この 'もの'が2日前に作業を停止したということです。 CRMでは、Googleアカウントに関連付けられたGoogleカレンダーに会議を予約します。今、最後の2日間で私たちは問題を経験しています、前に起こったことはありません。

アプリケーションは次のように失敗します。

Fatal error: Uncaught exception 'Google_AuthException' with message 'Error refreshing the OAuth2 token, message: '{"error" : "invalid_grant";} 

Stack trace: 

#0 /path/to/plugins/google-api-php-client/src/auth/Google_OAuth2.php(240): Google_OAuth2->refreshTokenRequest(Array) 
#1 /path/to/plugins/google-api-php-client/src/auth/Google_OAuth2.php(217): Google_OAuth2->refreshToken('1/ourtoken...') 
#2 /path/to/plugins/google-api-php-client/src/service/Google_ServiceResource.php(167): Google_OAuth2->sign(Object(Google_HttpRequest)) 
#3 /path/to/plugins/google-api-php-client/src/contrib/Google_CalendarService.php(494): Google_ServiceResource->__call('insert', Array) 

これは、実際のHTTPの答えです:

 
Google_HttpRequest Object 
(
    [batchHeaders:Google_HttpRequest:private] => Array 
     (
      [Content-Type] => application/http 
      [Content-Transfer-Encoding] => binary 
      [MIME-Version] => 1.0 
      [Content-Length] => 
     ) 

    [url:protected] => https://accounts.google.com/o/oauth2/token 
    [requestMethod:protected] => POST 
    [requestHeaders:protected] => Array 
     (
      [content-type] => application/x-www-form-urlencoded 
      [content-length] => 196 
     ) 

    [postBody:protected] => client_id=111111111.apps.googleusercontent.com&client_secret=secretSECTRETsecretSECRET&refresh_token=1%2FveryLONGtokenSTRINGhafbuaADDFR&grant_type=refresh_token 
    [userAgent:protected] => Google Calendar PHP Starter Application google-api-php-client/0.6.0 
    [responseHttpCode:protected] => 400 
    [responseHeaders:protected] => Array 
     (
      [content-type] => application/json; charset=utf-8 
      [cache-control] => no-cache, no-store, max-age=0, must-revalidate 
      [pragma] => no-cache 
      [expires] => Mon, 01 Jan 1990 00:00:00 GMT 
      [date] => Thu, 10 Nov 2016 01:05:15 GMT 
      [x-content-type-options] => nosniff 
      [x-frame-options] => SAMEORIGIN 
      [x-xss-protection] => 1; mode=block 
      [server] => GSE 
      [alt-svc] => quic=":443"; ma=2592000; v="36,35,34" 
      [accept-ranges] => none 
      [vary] => Accept-Encoding 
      [transfer-encoding] => chunked 
     ) 

    [responseBody:protected] => { 
    "error" : "invalid_grant" 
} 
    [accessKey] => 
) 

はい、我々は古いバージョンではない新しいものを使用しています。はい、アカウントはライブです。挿入しようとしているカレンダーは存在しています。特権やパスワードは変更/リセットされませんでした。私たちはすべてのカレンダーを試しました。全く成功しませんでした。私はここで開発者キーを使用せず、アクセスタイプをオフラインに設定し、サーバ時間を同期させるなどのマイナーな変更やハッキングも試みました...

実際には、それが壊れる前に全部で何もし​​ませんでした。したがって、1つの質問があります.Googleは行動やコードなどで何かを変更しましたか?あるいは何か(欠けている/削除された機能のような)が欠けていましたか?私の大学の

EDIT#1

一つは、実際に何かを変更しました。 (編集セクションの終わりにそれ以上)

私たちは1つの「メイン」Googleアカウント、開発者キーとクライアントID、そしてすべてのアカウントを持っており、このアカウントにも1カレンダーがあります。

私たちは同僚のために複数の他のGoogleアカウントを持っています。メインカレンダーからカレンダーに、またその逆も許可されています。 GoogleのCMSでは、同僚のカレンダーの1つにイベント(したがってGoogle_CalendarServiceに挿入)を追加しようとしています。

私たちの同僚の一人が仕事を辞め、私の大学が変更されましたHISパスワード。そして、助成金を取り除いた。それは16:00に月曜日起こって、火曜日の朝、私たちは最初のエラーを得ました。この1つのGoogleアカウントの変更は、他のすべてのユーザーの動作に影響を与えることができますか?メインカレンダーアカウントの動作???

- 誰もがこのような似たような経験し、修正するために管理した場合EDIT番号の末尾1

することは、いくつかのアドバイスをお願いします。ありがとうございました!

+0

Gmailスコープのいずれかを使用していますか?ユーザーが最近パスワードを変更した可能性はありますか? "Googleは行動/コードなどで何かを変えたのか?"私は確信していませんが、私はこの数週間のように多くの質問を見てきました。 Googleの連絡先にチェックインしています。 – DaImTo

+0

こんにちは@DaImTo、ご意見ありがとうございます。私たちは明示的に範囲を定義していません、私はあなたに使用法の少し詳細な情報を与えるために説明を編集します。あなたのGoogleの人からのフィードバックは非常にいいです。乾杯。 – solotherm

+0

もっと明確にしましょう。ユーザーを認証するときは、少なくともGoogleカレンダーのスコープを要求している必要があります。他の権限をリクエストしていますか? – DaImTo

答えて

0

皆さん(誰も気にせず)!

無限に掘り下げて試してみたところ、&は失敗しました。私は、Googleが実際に私たちの古いアクセストークンをブロックしていたことを知りました。たぶんそれは私たちの側からパスワードの変更と許可の取り消しだったかもしれません。おそらく、以前の同僚が何かを取り消したりリセットしたりしようとしていたかもしれません。しかし、トークンはもはやアクティブではありませんでした。私は

感謝と出て大きな叫びを私たちのAPIの資格情報との接続をセットアップして、新しい接続設定(新しいアクセストークンと新しいリフレッシュトークン)を持っているのOAuth2遊び場といくつかの小さなシャロン後

それを指摘するために@DaImToに、おそらくこの問題の原因となっている非アクティブ/古いトークンであることを示します。

@Google:意味のあるエラーメッセージとエラーの説明を追加してください。このような重要な問題を「マイナー」で解決するには、数分から数時間で数分〜

この投稿が将来誰かを助けてくれることを願っています。平和!

1

2016年11月17日更新:

我々はパージされ、いくつかのトークンが生じた問題を発見しました。我々はそれが再び起こらないことを確認するために取り組んでいます。残念ながら、削除されたトークンを復元する方法はなく、ユーザーは再認証する必要があります。


私たち(Googleアイデンティティチーム)は、他のいくつかの開発者が私たちに連絡してくれたので、この問題を調査しています。デバッグを高速化するために、 私は私のG +プロファイルを通じて私にIMして、私はいくつかの情報を取得して調査することができます。

"Googleが行動/コードなどで何か変わったのですか?"という答えは意図的に変更されていませんでした。

+0

私のこの問題の追跡は、それらのすべてではなく、ランダムなサブセットです。ほとんどの場合、少なくとも2週間前に使用されていたリフレッシュトークンが突然動作しなくなりました。私はまだそれを再現することができませんでした。野生の推測は、それが再送時間の変更と関係がありますか?それはこれまで一度も問題になっていません。 – DaImTo

+0

@nvnagrあなたがハングアウトに招待状を送ったが、それがあなたが望むものかどうかはわからない。ドンノは正直言ってそれが1トークン以上あれば。私は1つのアカウントをメインシステムに統合し、他のカレンダーにイベントを挿入しようとします - それはカレンダーごとに1トークンまたは1トークンですか?しかし、彼らの誰も働いていない - >メインアカウントのカレンダーにイベントを挿入することもできません。 (私は新しいGoogle_Client()インスタンスを実行している同じアカウントのカレンダーを指しています) – solotherm

+0

Elzo、これは伝統的な「良い」回答ではありませんが、この問題を遭遇した他の開発者私。この質問に対するもう1つの答えは正確ではありません。私のチームがGoogleでOAuthサービスを実行していると言えます。この問題を調査したら、この回答を編集します。 – nvnagr

0

私が作成した古いアプリで同じ問題が発生しました。安全のためにクライアントの秘密鍵と開発者キーを再生成することで、アプリケーションは再び動作しますが、試してみるものはすべて失敗します。悲しいことに、無駄な朝。

関連する問題