#php #android #api #google-api-php-client #publisher
#php #Android #API #google-api-php-client #издатель
Вопрос:
Я хочу проверить inAppPurchase
, что было сделано в моем приложении для Android.
-
Я создал новую учетную запись службы в консоли API Google.
a. Учетная запись службы указана в разделе разрешения и имеет разрешение «можно просматривать»
-
Я использую самую последнюю версию https://github.com/google/google-api-php-client
-
фрагмент кода из моего 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() ); }
-
Ответ от Google:
ПОЛУЧИТЬ https://www.googleapis.com/androidpublisher/v1.1/applications/de.test.myapp/inapp/de.test.inapp.google.balance5eur/покупки/[PURCHASETOKEN]: (401) У текущего пользователя недостаточно разрешений для выполнения запрошенной операции.
[PURCHASETOKEN] — это токен покупки, который я получил от Google
-
Настройка
$cred->sub = 'foo@bar.de'
на мой почтовый адрес вызываетОшибка обновления токена OAuth2, сообщение: ‘{ «ошибка»: «неавторизованный клиент», «error_description»: «Неавторизованный клиент или область в запросе». }’
Ответ №1:
Вы должны подключить свой API к своему приложению. Вы должны перейти на страницу публикации в Google Play (https://play.google.com/apps/publish ) и пригласите пользователя с электронной почтой учетной записи службы в Настройках-> Учетная запись пользователя и права-> Пригласить нового пользователя и предоставить ему привилегии «Просмотр финансовых отчетов».
Это означает, что, хотя обычно вы можете видеть несколько пользователей из вашего домена, перечисленных в консоли Google Play (Email: user1@mydomain.example
, Роль: Финансы; Email: user2@mydomain.example
, Роль: Администратор), теперь вы добавите другого пользователя и дадите ему роль финансы (Email: XXX@developer.gserviceaccount.com
, Роль: Финансы).
Комментарии:
1. Вы спасли мой день! Большое вам спасибо! Почему это не задокументировано в документации Google?
2. К сожалению, это не решает проблему для меня. Тот же ответ об ошибке. Что означает «подключить ваш API к вашему приложению»? Это добавление электронной почты учетной записи службы?
3. Вот несколько документов о переносе приложений между учетными записями Google Play, что привело меня к получению ошибки 401. support.google.com/googleplay/android-developer/checklist /…
4. @BobMitchell «подключить свой API к вашему приложению» означает «авторизовать ваше приложение для получения «финансовой» информации (например, о покупках в приложении и внутриигровых покупках) учетной записи Google Play Publish, которой вы владеете и которая получает покупки, через Google Api». Таким образом, вы должны предоставить привилегии пользователю, которого вы используете в качестве идентификатора клиента («123456789123-vxoasdt8qwe6awerc9ysdfmjysdfysf64werweria8fh.apps.googleusercontent.com » в этом вопросе) на странице вашего издателя в Google Play, чтобы получить доступ к финансовой информации. Я надеюсь, что это поможет вам.
5. Я пытаюсь получить подтверждение покупок в приложении, запрос GET googleapis.com/androidpublisher/v2/applications /[Имя пакета]/. … Кроме того, я настроил все, насколько я знаю, связал API с приложением, предоставил права администратора созданному мной пользователю, получил токен и т. Д., Но он продолжает выдавать ошибку 401 «У текущего пользователя недостаточно прав для выполнения запрошенной операции». Есть идеи? Как я могу предоставить больше разрешений, чем позволяет администратор ?.