admin管理员组文章数量:1604667
Google Play API 官方文档:Google Play Developer API | Google for Developers
步骤如下:
- 创建账号以及关联API服务
- 创建服务账号
- 调用API
前两步比较简单,可以参考官方文档:
开始使用 | Google Play Developer API | Google for Developers
这里主要介绍第3步,如何使用java调用Google Play的API接口(服务账号的形式)
进入官网,点击示例
点击“适用于Java的Google API客户端库”
下载“客户端库”的某一版本,如1.30.1,后面需要手动替换依赖
下载“示例代码”
将示例代码samples中的6个类拷贝到客户端库的demo包中(新建demo包)
现在的项目结构如下(多出的2个类是后面建的,忽略即可)
手动替换依赖
<dependencies>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.32.1</version>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client-extensions</artifactId>
<version>1.6.0-beta</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.34.1</version>
</dependency>
<dependency>
<groupId>com.google.api.client</groupId>
<artifactId>google-api-client-repackaged-com-google-common-base</artifactId>
<version>1.2.3-alpha</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
</dependencies>
如果AndroidPublisherHelper报JacksonFactory的错,可以替换为GsonFactory
//private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();
private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
将前两步生成的json文件或p12文件放在resouces里。本文章使用的是p12
去ApplicationConfig中修改
- APPLICATION_NAME
- PACKAGE_NAME
- SERVICE_ACCOUNT_EMAIL
static final String APPLICATION_NAME = "com.123.abc";
static final String PACKAGE_NAME = "com.123.abc";
static final String SERVICE_ACCOUNT_EMAIL = "xxx";
去AndroidPublisherHelper中修改文件存放路径
注意:路径是系统的路径,有时使用相对路径会找不到文件,建议使用绝对路径先尝试一下
private static final String SRC_RESOURCES_KEY_P12 = "./resources/xxx.p12";
private static final String RESOURCES_CLIENT_SECRETS_JSON = "./resources/xxx.json";
配置完成后就可以正式调用接口了,那么如何灵活地去调用我们想要的接口呢?
点击“参考文档”
假设我要调 “列出已取消、已退款或已退款的购买交易” 这个接口
先新建一个类,如VoidedPurchasesList
步骤如下:
- 初始化服务
- 调用接口
public class VoidedPurchasesList {
private static final Log log = LogFactory.getLog(VoidedPurchasesList.class);
public static void main(String[] args) {
try {
// 1.初始化服务
Preconditions.checkArgument(!Strings.isNullOrEmpty(ApplicationConfig.PACKAGE_NAME),
"全限定包名不能为空");
final AndroidPublisher service = AndroidPublisherHelper.init(
ApplicationConfig.APPLICATION_NAME, ApplicationConfig.SERVICE_ACCOUNT_EMAIL);
// 2.调用接口 获取purchases.voidedpurchases资源
// API文档:https://developers.google/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list?hl=zh-cn
VoidedPurchasesListResponse resp = service.purchases().voidedpurchases().list(ApplicationConfig.PACKAGE_NAME).execute();
System.out.println(JSON.toJSONString(resp));
} catch (IOException | GeneralSecurityException ex) {
log.error("查询退单列表异常", ex);
}
}
}
官方的接口为purchases.voidedpurchases
所以只要service.purchases().voidedpurchases().list(ApplicationConfig.PACKAGE_NAME).execute()
如果你想查看评价列表
只需要改为service.reviews().list(ApplicationConfig.PACKAGE_NAME).execute()即可
如果报了“The current user has insufficient permissions to perform the requested operation.",
"reason" : "permissionDenied”,说明权限不足,在前两步时需要做好处理
解决方案可参考:
1、账号权限中需要至少打三个勾
2、勾选API
3、如果以上都做了还是权限不足,原因是Google Play官网自身问题,需要等待权限传播;本人等了5天后才有权限(期间没做任何操作)
注:
1、代码不是凭空而来的,而是由官方示例代码改造而来的
2、需要梯子才能访问Google Play API
版权声明:本文标题:java整合google play 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1728464575a1159304.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论