Авторизация учетной записи службы с помощью oauth2 с использованием python для Google Play Developer API - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь авторизовать служебную учетную запись, используя oauth2 через библиотеку Python google-client-api.В конечном итоге я хочу проверить покупки в приложении.

Это мой код:

   SCOPES = ['https://www.googleapis.com/auth/androidpublisher']
   SERVICE_ACCOUNT_FILE = 'google.api.json'

   credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)

   http = credentials.authorize(httplib2.Http())

   service = build(
       serviceName='androidpublisher',
       version='v2',
       credentials=credentials
   )
   req = service.purchases().products().get(
            packageName=package,
            productId=product,
            token=token
        )

   response = req.execute()

Я получаю это сообщение обратно:

...returned "The project id used to call the Google Play Developer API has not been linked in the Google Play Developer Console."

Идентификатор моего проектаабсолютно связаны;моя учетная запись службы абсолютно подключена в консоли Google Play как пользователь с правильными разрешениями для этого проекта.Когда я регистрирую вышеуказанный код, я получаю идентификатор проекта, который связан.

Токен (не токен доступа, а токен покупки в приложении) взят из тестовой покупки моей личной учетной записи Google (совсем недавноGoogle наконец-то открыл аккаунты разработчиков для тестовых покупок!).И sku для моей тестовой покупки - это реальный sku, который я собираюсь продать пользователям приложения.

Я в растерянности.Существует так много противоречивой информации о том, как сделать то, чего я пытаюсь достичь.Стыдно, гугл!Стыдно!Документов не хватает, если не сказать больше.(Я имею в виду, что у них есть хорошая информация, она просто разбросана повсюду).

Буду рад любому совету по этому поводу.Я в растерянности и не могу пройти вышеупомянутое сообщение об ошибке.

РЕДАКТИРОВАТЬ : Мой код был правильным выше;см. мой ответ для реальной причины.

1 Ответ

0 голосов
/ 08 октября 2018

Я нашел причину этой проблемы с помощью этой ссылки здесь .

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

Также на полу-не связанной ноте, пока я делал это, я изо всех сил пытался понять, нужно ли мне получать и использовать access_token смой сервисный аккаунт и авторизуйтесь таким образом.Я слишком долго думал о том, что это проблема. В конце достаточно использовать мою учетную запись службы и авторизацию с помощью JWT. Вам не нужно делать что-либо с токенами доступа или обновлять их, как показано в коде выше, для авторизации наРабота.Я подумал, что добавлю это к ответу, потому что это сэкономило бы мне часы, если бы я знал это, поскольку слишком долго шел по неверному пути в приведенном выше сообщении об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...