Я пытаюсь подтвердить покупку пользователя с помощью токена, полученного от клиента (внутренняя версия). Для этого я использую скрипт Python с клиентом Google Python API (https://github.com/googleapis/google-api-python-клиент).
import httplib2
from oauth2client.service_account import ServiceAccountCredentials
token = "token received from the client"
http = httplib2.Http(timeout=self.http_timeout)
credentials = ServiceAccountCredentials.from_json_keyfile_name(
"./service_account.json", "https://www.googleapis.com/auth/androidpublisher"
)
http = credentials.authorize(http)
result = build("androidpublisher", "v3", http=http)\
.purchases()\
.products()\
.get(packageName = "<package name>", productId = "<subscription id>", token=token)\
.execute(http=http)
Ответ, который я получаю от этого звонка:
HttpError 401 when requesting https://www.googleapis.com/androidpublisher/v3/applications/<package name>/purchases/products/<subscription id>/tokens/<token>?alt=json returned "The current user has insufficient permissions to perform the requested operation."
Используемый пользователь службы дает права администратора учетной записи (ради теста) в консоли Google Play и назначается «Владелец проекта» в консоли «Google Cloud Console» (опять же ради теста).
Что здесь не так?
Похоже, это была проблема. Спасибо! Любая идея, какие должны быть минимальные разрешения, чтобы это работало? Конечно, я не планирую оставлять этого пользователя админом. И с 24-часовым временем распространения у меня мало места для проб и ошибок.
Я полагаю, что это разрешения «Владелец»: docs.revenuecat.com/docs/…
Хотите оставить ответ вместо комментария, чтобы я мог его принять?
Я только что создал свои учетные данные службы несколько часов назад. Это значит, что завтра ближе к вечеру будем работать?
что означает токен в данном случае? Купить токен или токен клиентского доступа после авторизации?






Разрешения «Владелец» достаточны для получения проверки [Источник].
Ошибка, которую вы получаете, скорее всего, является проблемой распространения, когда учетные данные службы вступят в силу во всей системе на самом деле может занять ~ 24 часа.
Это должно быть обновлено: оно даже изменено в справочных документах на «Роль редактора Pub/Sub». В любом случае было бы здорово, если бы RevenueCat добавил какое-то объяснение, почему необходим этот уровень доступа, поскольку предоставление доступа к одному проекту GCP кажется немного небезопасным.
Иногда распространение учетных данных службы может занять около 24 часов. Вы их только что создали?