python - 使用 python 为 Google Play Developer API 使用 oauth2 授权服务帐户

标签 python google-api-client google-oauth google-play-developer-api

我正在尝试通过 google-client-api python 库使用 oauth2 授权服务帐户。我最终想要验证应用内购买。

这是我的代码:

   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."

我的项目ID是绝对链接的;我的服务帐户作为具有此项目正确权限的用户在 Google Play 控制台中绝对连接。当我记录上面的代码时,我得到了链接的项目 ID。

token (不是访问 token ,而是应用内购买 token )来 self 个人谷歌账户的测试购买(最近谷歌终于开放了开发者账户进行测试购买!)。我测试购买的 sku 是我要卖给应用程序用户的实际 sku。

我很茫然。关于如何做我想要实现的目标,有太多相互矛盾的信息。可耻的是,谷歌!耻辱!至少可以说,缺少文档。 (我的意思是他们有很好的信息,只是散落在各处)。

我很乐意就此提出任何建议。我不知所措,无法通过上述错误消息。

编辑:我上面的代码是正确的;真正原因请看我的回答。

最佳答案

我在这个链接的帮助下找到了这个问题的原因 here .

我在链接我的项目之前创建了我的应用内购买。创建一个新的应用内购买解决了这个问题。另一方面:该错误消息肯定具有误导性。

还有一个半不相关的说明,当我这样做时,我很难理解是否需要通过我的服务帐户获取和使用 access_token 并以这种方式授权。我把注意力集中在这个问题上太久了。 最后,使用我的服务帐户并使用 JWT 进行授权就足够了。不需要需要对访问 token 执行任何操作或刷新它们,如上面的代码所示授权工作。我想我会把这个添加到答案中,因为如果我知道这一点,它会节省我几个小时,因为我在上面的错误消息上走错了太长的路。

关于python - 使用 python 为 Google Play Developer API 使用 oauth2 授权服务帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52685198/

相关文章:

python - 收到错误 400 : redirect_uri_mismatch when trying to use OAuth2 with Google Sheets from a Django view

android - GLS 错误 : INVALID_AUDIENCE in google cloud endpoints

向 Google 网站站长工具 API 发出的 PHP/Python 请求

python - 如何在 Python 2 中显式从同一目录导入模块?

python - numpy.genfromtxt- ValueError- Line #(得到 n 列而不是 m)

Python Mocking - 如何模拟 Google 的 storage.client?

python - 无法在 PyCharm 上安装 googleapiclient

python - 如何打开可见的全尺寸 Excel?

python - Django,重定向的网址不正确

google-api - Google Tasks API : 403 Forbidden, 超出服务限制