私はここ数日、たくさんのことを試しましたが、今はアイデアがありません:(
Androidアプリで作成されたinAppPurchaseを確認したい。
1)GoogleAPIコンソールで新しいサービスアカウントを作成しました。
1a)サービスアカウントは権限の下にリストされており、「表示できる」権限を持っています
2)最新バージョンの https://github.com/google/google-api-php-client を使用しています
3)私のPHPスクリプトからのコードスニペット:
$client = new Google_Client();
$client->setApplicationName('myAppName' );
$client->setClientId('123456789123-vxoasdt8qwe6awerc9ysdfmjysdfysf64werweria8fh.apps.googleusercontent.com');
$key = file_get_contents('/shr/data/stor/b516cexx3123asdf3988345d8133e7f86bfas2553-privatekey.p12');
$service_account_name = '123456789123-vxoasdt8qwe6awerc9ysdfmjysdfysf64werweria8fh@developer.gserviceaccount.com';
$client->setScopes(array('https://www.googleapis.com/auth/androidpublisher') );
$cred = new Google_Auth_AssertionCredentials( $service_account_name, array('https://www.googleapis.com/auth/androidpublisher'), $key );
$client->setAssertionCredentials($cred);
try {
$service = new Google_Service_AndroidPublisher( $client );
$googleApiResult = $service->inapppurchases->get($externalAppId, $externalProductId, $purchaseToken);
} catch (Exception $e) {
var_dump( $e->getMessage() );
}
4)グーグルからの応答:
GET https://www.googleapis.com/androidpublisher/v1.1/applications/de.test.myapp/inapp/de.test.inapp.google.balance5eur/purchases/ [PURCHASETOKEN] : (401)現在のユーザーには、要求された操作を実行するための十分な権限がありません。
[PURCHASETOKEN]は私がグーグルから受け取った購入トークンです
5)$ cred-> sub ='[email protected] 'を私のメールアドレスに設定すると、
OAuth2トークンの更新中にエラーが発生しました。メッセージ: '{"error": "unauthorized_client"、 "error_description": "Unauthorized client or scope inrequest。" } '
OK、解決策を見つけました!
APIをアプリに接続する必要があります。 Google Playの公開ページ( https://play.google.com/apps/publish )に移動し、[設定]-> [ユーザーアカウントと権限]->でサービスアカウントのメールアドレスを使用してユーザーを招待する必要があります新しいユーザーを招待し、「財務レポートを表示する」権限を付与します。
つまり、通常、ドメインの多数のユーザーがGoogle Playコンソールに表示されますが(メール:[email protected]、役割:財務、メール:[email protected]、役割:管理者)、次に、別のユーザーを追加して、彼に財務の役割を与えます(電子メール:[email protected]、役割:財務)。
ありがとう、頑張ってください!