В Google API v2, почему возникает ошибка: «Идентификатор проекта, используемый для вызова API разработчика Google Play, не был связан»?

Когда я использую Google API v2, чтобы получить список inapp , я получаю следующую ошибку при вызове API:

{ "error": { "errors": [ { "domain": "androidpublisher", "reason": "projectNotLinked", "message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console." } ], "code": 403, "message": "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console." } } 

Затем я исследовал эту ошибку и в итоге увидел предложения на этой странице, на этой странице и на этой странице. Я последовал за ним и дважды проверил, как проекты связаны между собой, но это не помогло.

Это то, что я сделал …

В консоли разработчика Google:

  1. Используется существующий проект.
  2. Пошел API API и auth> API.
  3. Убедитесь, что «API разработчика Android для Google Play» включен.
  4. Использовал мои существующие учетные данные для идентификаторов клиентов, CLIENT SECRET и REDIRECT URIS. Тип приложения – «родное приложение».
  5. Создал API-ключ, но не использовал его.

В консоли разработчика Google Play:

  1. Доступ к настройкам> API.
  2. В LINKED PROJECT я гарантировал, что вышеупомянутый проект из Google Developer Console был связан.

В моем PHP-скрипте:

 <?php require_once('/var/www/html/common/include.php'); require_once realpath(dirname(__FILE__) . '/lib/Google/autoload.php'); $refreshToken = '1/sometoken'; $packageName = 'com.somepackage'; $client_id = GOOGLE_CLIENT_ID; $client_secret = GOOGLE_CLIENT_SECRET; $redirect_uri = 'http://localhost'; $client = new Google_Client(); $client->setClientId($client_id); $client->setClientSecret($client_secret); $client->setRedirectUri($redirect_uri); $client->setAccessType('offline'); $client->setApprovalPrompt('force'); $client->setScopes(['https://www.googleapis.com/auth/androidpublisher']); $client->refreshToken($refreshToken); $service = new Google_Service_AndroidPublisher($client); $response = $service->inappproducts->listInappproducts($packageName); var_dump($service); 

Это привело к вышеуказанной ошибке.

Любые другие предложения по устранению этой ошибки с использованием токенов обновления?

Эй, у меня была такая же проблема, как и вы, я понял, что проблема в том, что я был аутентификацией, у пользователя не было прав.

Сначала зайдите в свою консоль Google Play, перейдите в меню «Настройки»> «Доступ к API». Убедитесь, что у вас есть связанный «Разработчик Android для Google Play» (который звучит так, как вы, и я тоже сделал).

Затем перейдите в « Настройки»> «Учетные записи пользователей и права» , убедитесь, что у пользователя есть права на просмотр подписки или что-то, в чем вы нуждаетесь. Для целей тестирования просто дайте ему все права.

Затем убедитесь, что Authenticate этого пользователя через Oauth (т. Е. Выберите их электронную почту из списка), а затем получите типичный токен обновления / доступа

На самом деле мне кажется настолько мучительно очевидным, но это все равно заняло день разочарования. Надеюсь, это решает вашу проблему 🙂