Googleの例(https://developers.google.com/google-apps/calendar/quickstart/php)のコードをそのままコピーし、できるだけ指示に従ってから、カレンダーがうまく機能しました。しかし、私は今日来て、それが動作を停止し、何が間違っているのか分からないことに気づいた。Google Calendar API getRefreshToken
私は私の問題の根本は、この行であると信じて:キャッチされないLogicException
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
その行が私にこのエラーが発生しますので、:リフレッシュトークンが渡されたかsetAccessTokenの一部として設定する必要があります
似たような質問があります(Get refresh token google api、Not receiving Google OAuth refresh token)しかし、私はそうではないようです彼らの答えで私の問題を抱えています。
別の注意; $client->getRefreshToken()
は私がそれをテストするときにnull
を返すように思われるので、私は$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
が失敗していると思っています。
だから、これは$client->getRefreshToken()
がnull
ですが、私は私が必要な仮定の下にあったので、コードの一部は私にエラーを与えることを質問
// Refresh the token if it's expired.
if ($client->isAccessTokenExpired()) {
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
file_put_contents($credentialsPath, json_encode($client->getAccessToken()));
}
にある例から直接コードの一部でありますリフレッシュトークンを使用して新しいトークンを取得する方法はありますが、リフレッシュトークンがない場合はできません。
また、これはすでに通話
$client->setAccessType('offline');
$client->setApprovalPrompt('force');
うん、私はすでに彼ら以来、それらのフラグを設定しましたこの例ではそして、それがリフレッシュされることを知っています。それは、 '期限切れになったらトークンをリフレッシュする 'とコメントしています。新しいキーを返すことはありません。 –
私の質問は、うまくいっていることをさらに明確にする –