准备工作
# 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()
来源:oschina
链接:https://my.oschina.net/u/4302796/blog/4267790