You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python调用Google Play Store API获应用评论遇权限错误求助

解决Android Publisher API调用的权限报错问题

我来帮你搞定这个「The caller does not have permission」的报错,这类问题在使用Google Play的API时挺常见的,咱们从权限配置到代码细节一步步排查:

一、先搞定核心的权限配置问题

这是最可能导致报错的原因,得确保你的服务账号拥有访问应用评论的权限:

  • 打开Google Play Console,找到你对应的应用(包名是xtestx
  • 进入「用户和权限」页面,点击「添加用户」
  • 输入你服务账号的邮箱(就是testxyz.json里的client_email字段值),然后给它分配至少「查看应用权限」的权限(如果需要回复评论,就选「回复评论权限」)
  • 注意:权限生效可能需要5-10分钟,别刚设置完就马上重试

二、确认Android Publisher API已启用

如果API没开,哪怕权限对了也会报错:

  • 打开Google Cloud Console,找到你创建服务账号的项目
  • 在搜索栏输入「Android Publisher API」,检查它的状态是不是「已启用」
  • 如果是「未启用」,点击启用按钮,等几分钟再测试

三、验证密钥文件的正确性

确保你用的testxyz.json是正确的:

  • 打开文件,核对client_email和你在Play Console添加的邮箱完全一致
  • 确认这个文件是直接从Google Cloud Console下载的,没有被修改过内容

四、修复代码里的两个小问题

你的代码里还有两处错误,虽然不是权限报错的直接原因,但会导致后续分页逻辑失效:

  1. 缺少httplib2的导入,要在开头加上:
    import httplib2
    
  2. 分页逻辑有语法错误,正确的写法应该是:
    infinite_loop_canary = 100
    while "tokenPagination" in reviews_page and "nextPageToken" in reviews_page["tokenPagination"]:
        next_token = reviews_page["tokenPagination"]["nextPageToken"]
        reviews_page = reviews_resource.list(
            packageName=package_name,
            maxResults=100,
            pageToken=next_token
        ).execute()
        reviews_list.extend(reviews_page["reviews"])
        infinite_loop_canary -= 1
        if infinite_loop_canary < 0:
            break
    
    原来的代码里错误地拼接了pageToken参数,而且多了一个闭合括号,这样会直接导致语法错误。

按照上面的步骤逐一排查后,应该就能正常调用API获取评论了。

内容的提问来源于stack exchange,提问作者Sravya Lenka

火山引擎 最新活动