2

PHP で Google ドライブ API を使用しています。まず、認証 URL を要求し、ユーザーをその URL に送信します。ユーザーは承認され、意図したとおり、クエリ文字列に承認コードが含まれている私の URL にリダイレクトされます。$client->authorize()次に、クエリ文字列からコードを呼び出して渡します。次のエラーが表示されます。

Uncaught exception 'Google_AuthException' with message 'Error fetching OAuth2 access token, message: 'invalid_grant'' in
/home/a5874817/public_html/custom/google/src/auth/Google_OAuth2.php:113
Stack trace:
#0 /home/a5874817/public_html/custom/google/src/Google_Client.php(131): Google_OAuth2->authenticate(Array, '4/jN5JfD_ejozBj...')
#1 /home/a5874817/public_html/custom/docs_reply.php(10): Google_Client->authenticate('4/jN5JfD_ejozBj...')
#2 {main}
thrown in /home/a5874817/public_html/custom/google/src/auth/Google_OAuth2.php on line 113

このアカウントは以前にこのアプリを承認しましたが、認証 URL には常に access_type=online が含まれており、1 時間以上前のことなので、アクセス トークンの有効期限が切れているはずです。このエラーの具体的な原因は何ですか?

4

2 に答える 2

0

オンライン アクセスしかないため、新しいアクセス トークンがなくなったときにそれを更新することはできません。

永続的なアクセスが必要な場合は、access_type=offline を要求し、後で使用できるように更新トークンを保存してください。

于 2013-01-10T23:23:59.427 に答える
0

さて、問題は解決しましたが、行った多くの変更のどれが問題を解決したか正確には覚えていません。問題は、認証 URL に間違った種類の access_type が含まれていたか、クライアントの設定が間違っていたことだと思います。他の誰かが同様の問題を抱えている場合は、スコープが正しいことを確認し、実際にすべての認証 URL を読み取って、意味があることを確認することをお勧めします。

于 2013-03-25T00:30:11.503 に答える