0

サーバーでサブスクリプションを確認したいのですが、アクセス トークンを取得しようとすると、invalid_grant エラーが発生します。サーバーのphpでそのコードを使用します。

$refreshToken = '4/cTphJ...';
$clientId = '1234567.apps.googleusercontent.com';
$clientSecret = '';
$redirectUri = 'https://www.example.com/oauth2callback';

$ch = curl_init();

$url  = 'https://accounts.google.com/o/oauth2/token';

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'grant_type=authorization_code&client_id=' . $clientId . '&client_secret=' . $clientSecret . '&code=' . $refreshToken . '&redirect_uri=' . $redirectUri);

$data = curl_exec($ch);

curl_close($ch);

何が間違っている可能性がありますか?

編集: 正しいコードを生成すると、invalid_grant エラーが発生しなくなりましたが、「この開発者アカウントはアプリケーションを所有していません」というエラーが発生します。Android アプリケーションと Google コンソールの新しい API プロジェクトが同じ Google アカウントで作成されているのに、なぜそのエラーが表示されるのですか?

4

1 に答える 1

0

それは私の間違いでした。私はそのURLをhttps://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=...&client_id=と呼びました...しかし私のredirect_uri が間違っていたので、間違ったコードを取得しました。

開発者コンソールの設定のメールが間違っていました。

于 2013-05-06T14:04:20.530 に答える