Python版获取google上架app评论以及回复等相关api

一个人想着一个人 提交于 2020-05-06 09:11:39

准备工作

# Python3.x的开发环境

# google的账号 https://developers.google.com/

# 各种语言的library  https://developers.google.com/api-client-library/

# 需要安装的模块

  1. pip install google-api-python-client

  2. pip install google-auth-oauthlib

  2. pip install oauth2client

打开谷歌开发者中心 用到的api是 Google Play Android Developer API

选择你上传apk 的项目(没有的可以创建项目不过是没有评价信息的)

1.进入要使用的api Google Play Android Developer API 创建凭证

创建访问凭证

我们要使用的是红框中的选项

其他的作用 分别是web 服务端, web前端,移动端,谷歌浏览器应用 以及各种桌面应用程序,我们要使用的是是 不可视的脚本调用

 创建完成后回到下面选项

 

 

 

 需要下载秘钥凭证 有两种格式 json和p12 格式的文件 推荐使用json,由于本人需要兼容 旧项目所以使用的是p12格式的文件

 

导出下载文件

 

 

 

 

1.打开 Python 操作 google API 的demo 可以参考一下 地址是

  https://github.com/googlesamples/android-play-publisher-api

  调用 相关的api接口参考文档官方地址

  https://developers.google.com/apis-explorer/?hl=zh_CN#p/androidpublisher/v3/

 

  

如上图 :

  androidpublisher.reviews.get 是获取单个评论

  androidpublisher.reviews.list 是获取评论集合,但只能获取上周的

  androidpublisher.reviews.reply  回复的接口 

注意:由于您对评论的回复会在应用商店页面上公开显示,因此在撰写这些回复时,不要包含有关用户的敏感信息,这一点很重要。

注意:androidpublisher.reviews.reply POST请求,最多可以包含350个字符。您应该在回复中使用纯文本; 格式良好的HTML标记将被删除,并且不会包含在您的回复字符数中。但是,保留在格式良好的HTML标记内的内容。

需要注意的是  这个文档有点旧了 有些参数不太用了 比如 androidpublisher.reviews.list  参数 startIndex比较坑 

 

 

 code 

 

 1 #!/usr/bin/python
 2 
 3 """Lists all the apks for a given app."""
 4 
 5 import argparse
 6 
 7 from apiclient.discovery import build
 8 import httplib2
 9 from oauth2client import client
10 
11 # 你的角色邮件用户名
12 SERVICE_ACCOUNT_EMAIL = ('ggapi-sacc-elva@api-project-866561535012.iam.gserviceaccount.com')
13 
14 
15 def main():
16   # 官方文档用的是file  我改为open
17   f = open('1.p12', 'rb')
18   key = f.read()
19   f.close()
20   credentials = client.SignedJwtAssertionCredentials( SERVICE_ACCOUNT_EMAIL,  key, scope='https://www.googleapis.com/auth/androidpublisher')
21   http = httplib2.Http()
22   http = credentials.authorize(http)
23   
24   # 加载要使用的api 名称
25   service = build('androidpublisher', 'v3', http=http)
26   # 包名
27   package_name = 'com.longtech.lastwars.gp'#flags.package_name
28 
29   try:
30 
31     # edit_request = service.edits().insert(body={}, packageName=package_name),fields='pageInfo/totalResults,reviews'
32     # 默认第一页 
33     pllist=service.reviews().list(maxResults=20,packageName=package_name)
34     # result = edit_request.execute()
35     pllistresult = pllist.execute()
36     for item in pllistresult['reviews']:
37         print(item)
38 
39 
40     token=pllistresult['tokenPagination']['nextPageToken']       
41     # 翻页 不传入token是第一页 
42     pllist=service.reviews().list(maxResults=20,packageName=package_name,token=token)    
43     pllistresult = pllist.execute()
44     print(pllistresult)
45     # edit_id = result['id']
46 
47     # apks_result = service.edits().apks().list(
48     #     editId=edit_id, packageName=package_name).execute()
49 
50     # for apk in apks_result['apks']:
51     #   print ('versionCode: %s, binary.sha1: %s' % (apk['versionCode'], apk['binary']['sha1']))
52 
53   except client.AccessTokenRefreshError:
54     print ('The credentials have been revoked or expired, please re-run the '
55            'application to re-authorize')
56 
57 if __name__ == '__main__':
58   main()

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!