Android 发布商 api 遇到 403 错误

问题描述 投票:0回答:1

我正在尝试使用 Android 发布者 API 上传 apk,但在从 python 库和邮递员命中时运行时出现问题。

由于 python 包 oauth2client 已弃用,请切换到 google.oauth2

我们正在从 json 文件中获取凭据:

credentials = google.oauth2.service_account.Credentials.from_service_account_file('key.json',
                                                                      scopes=['https://www.googleapis.com/auth/androidpublisher'])
        service = build('androidpublisher', 'v3', credentials=credentials) 

从 json 文件获取凭证后,我们使用 edits().insert()

edit_request = service.edits().insert(body={}, packageName=self._packagename)
result = edit_request.execute()

输出:

 
INFO:root:<HttpError 403 when requesting https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.android.sample/edits?alt=json returned "The caller does not have permission". Details: "The caller does not have permission">
 

从同一个 json 文件生成令牌:

credentials = google.oauth2.service_account.Credentials.from_service_account_file('key.json',
                                                                      scopes=['https://www.googleapis.com/auth/androidpublisher'])
        service = build('androidpublisher', 'v3', credentials=credentials)
request = google.auth.transport.requests.Request()
        credentials.refresh(request)
        logging.info(credentials.token)


使用 Bearer TO API 复制令牌授权

API: https://androidpublisher.googleapis.com/androidpublisher/v3/applications/com.android.sample/edits?alt=json

输出:

{
    "error": {
        "code": 403,
        "message": "The caller does not have permission",
        "status": "PERMISSION_DENIED"
    }
}

Google Play Android Developer API 已在 Google Cloud 项目中启用。还需要启用其他API吗?

google-cloud-platform oauth-2.0 google-oauth google-api-python-client oauth2client
1个回答
0
投票

您通常不需要启用其他 API 来实现上传 APK 或通过 Android Publisher API 管理编辑等基本功能。只需在您的项目中启用 Google Play Android Developer API 就足以使用该 API 并将必要的角色分配给您的服务帐户。如果您最近创建了服务帐户,则角色分配可能需要长达 24 小时才能完全传播。

您还需要验证 Postman 使用的服务帐户是否具有与 Python 脚本中使用的角色相同的角色。

您使用的服务帐户缺乏必要的权限,因此您可能需要尝试授予“Android Publisher Editor”角色以进行测试。

这里有一些可能有用的资源

https://developers.google.com/identity/protocols/oauth2/service-account#python

带有服务帐户的 Google Android 应用内购买 API 的“403 Forbidden”响应

© www.soinside.com 2019 - 2024. All rights reserved.