1

この質問が以前に投稿されたことを知っています。しかし、どれも答えを持っていません。ですので、質問を再投稿します。分析データを取得しようとしています。しかし、認証後、アクセス トークンの「invalid_grant」エラーが発生します。現在、同じコードを約 3 か月間使用していましたが、突然この問題が発生しました。更新トークンをデータベースに保存し、これを使用してアクセス トークンを取得します。リクエストトークンの有効期限が切れる可能性はありますか? 助けてください!

$oauth2token_url    =   "https://accounts.google.com/o/oauth2/token";
$clienttoken_post   =   array(
                        "client_id" => $client_id,
                        "client_secret" => $client_secret,
                        "refresh_token" => $refreshToken,
                        "grant_type"    => 'refresh_token'
                    );

$authObj        =   getAccessToken($oauth2token_url, $clienttoken_post);

function getAccessToken($oauth2token_url, $clienttoken_post){

    $curl = curl_init($oauth2token_url);

    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $clienttoken_post);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $json_response = curl_exec($curl);
    curl_close($curl);

    $authObj = json_decode($json_response);

    return $authObj;
}

トークンの応答:****************** is - stdClass Object ( [error] => invalid_grant )

4

1 に答える 1

2

Ok。私はそれを理解しました。問題は、ユーザーがアプリに許可を与えると、更新トークンが更新されることでした。したがって、ユーザーが許可を与えると (2 回目)、最初の更新トークン (データベースまたはどこにでも保存したもの) が更新されます。アクセス許可が与えられるたびに更新トークンを更新するだけです。

于 2012-09-20T05:50:28.573 に答える