Я пробовал так много вещей в последние дни, но теперь у меня нет идей 🙁
Я хочу проверить inAppPurchase, которая была сделана в моем приложении для Android.
1) Я создал новую учетную запись службы в консоли Google API.
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) Ответ от Google:
GET https://www.googleapis.com/androidpublisher/v1.1/applications/de.test.myapp/inapp/de.test.inapp.google.balance5eur/purchases/[PURCHASETOKEN] : (401) У текущего пользователя есть недостаточно разрешений для выполнения запрошенной операции.
[PURCHASETOKEN] – это токен покупки, полученный мной из Google
5) Установка $ cred-> sub = 'foo@bar.de' на мой почтовый адрес вызывает
Ошибка обновления токена OAuth2, сообщение: «{« error »:« unauthorized_client »,« error_description »:« Неавторизованный клиент или область в запросе ». }»
Хорошо, я нашел решение!
Вы должны подключить свой API к своему приложению. Вы должны перейти на страницу публикации Google Play ( https://play.google.com/apps/publish ) и пригласить пользователя с учетной записью учетной записи службы в Настройках-> Учетная запись пользователя и права-> Пригласить нового пользователя и дать ему привилегии «Просмотр финансовых отчетов».
Это означает, что, в то время как вы, как правило, можете видеть несколько пользователей из вашего домена, перечисленных в консоли Google Play (электронная почта: user1@mydomain.com, Role: Finance; Email: user2@mydomain.com, Role: Administrator), вы будете теперь добавьте другого пользователя и дайте ему роль финансов (электронная почта: XXX@developer.gserviceaccount.com, Role: Finance).
Спасибо, работает для меня, удачи!
Я думаю, вы должны использовать веб-клиент OAuth 2.0.