AndroidPublisher(V3)Google API Java客户端库示例
我正在为我的安全后端服务器将AndroidPublisher库从v1升级到v3。AndroidPublisher库(v3)将允许我安全地对应用内购买和订阅进行服务器端购买验证和确认 v1的现有代码不再兼容。v3库看起来更好,但我找不到以下方面的示例代码:AndroidPublisher(V3)Google API Java客户端库示例,java,server,google-api-client,google-api-services-jobs,Java,Server,Google Api Client,Google Api Services Jobs,我正在为我的安全后端服务器将AndroidPublisher库从v1升级到v3。AndroidPublisher库(v3)将允许我安全地对应用内购买和订阅进行服务器端购买验证和确认 v1的现有代码不再兼容。v3库看起来更好,但我找不到以下方面的示例代码: 使用客户端JSON构建客户端凭据 使用PurchaseToken获取&确认购买 Maven设置: <project> <dependencies> <dependency> <g
使用PurchaseToken获取
&确认
购买李>
Maven设置:
<project>
<dependencies>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-androidpublisher</artifactId>
<version>v3-rev103-1.25.0</version>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
<version>1.30.2</version>
</dependency>
</dependencies>
</project>
com.google.api
正在查找这样的示例:
任何简短的示例代码都会很有帮助。添加以下依赖项
compile "com.google.apis:google-api-services-androidpublisher:v3-rev103-1.25.0"
compile "com.google.auth:google-auth-library-oauth2-http:0.17.1"
然后从谷歌云控制台启用谷歌开发者播放Api库
在凭据中,使用角色创建服务帐户密钥Pub/Sub-Admin
,并保存json文件
在谷歌开发者控制台。
在设置>>开发者帐户>>API访问中
链接您的应用程序
然后在代码中执行以下操作以获取订阅信息
GoogleCredentials credentials = GoogleCredentials.fromStream(new FileInputStream("<service-account-key-file>.json")).createScoped(AndroidPublisherScopes.ANDROIDPUBLISHER);
AndroidPublisher pub = new AndroidPublisher.Builder(
GoogleNetHttpTransport.newTrustedTransport(),
JacksonFactory.getDefaultInstance(),
new HttpCredentialsAdapter(credentials)
).setApplicationName("<app-name>").build();
SubscriptionPurchase purchase = pub.purchases().subscriptions().get(
"<app-package>",
"<subscription-id>",
"<purchase-token>"
).execute();
println(purchase);
GoogleCredentials credentials=GoogleCredentials.fromStream(新文件输入流(“.json”)).createScope(AndroidPublisherScopes.ANDROIDPUBLISHER);
AndroidPublisher pub=新的AndroidPublisher.Builder(
GoogleNetHttpTransport.newTrustedTransport(),
JacksonFactory.getDefaultInstance(),
新的HttpCredentialsAdapter(凭据)
).setApplicationName(“”.build();
SubscriptionPurchase=pub.purchases().subscriptions().get(
"",
"",
""
).execute();
println(采购);
注意:如果出现此错误:
当前用户没有足够的权限执行请求的操作
手术
一天后再试一次,因为在启用google play开发者api并从google控制台创建服务帐户密钥后,您需要等待24到48小时,并执行以下操作
从Google Play控制台转到(具有管理员权限):
设置(左面板)开发人员帐户(左面板)用户&
权限(左面板)
单击“邀请新用户”按钮李>
输入服务帐户电子邮件(与json文件中的相同)
您正在使用和创建服务时google生成的
账户)
在角色下拉菜单中选择管理员李>
点击
发出邀请
@萨比回答有效
下面是一个关于如何在kotlin中使用令牌和产品id获取(服务器端)购买的示例:
suspend fun playstoreVerifier(productId: String, token: String) = withContext(Dispatchers.IO){
androidPublisher.Purchases().products().get(PACKAGE_NAME, productId, token).execute()?.let {
println("ack ${it.acknowledgementState}")
}
}
是否有任何方法确认订阅?文档声称有一个,但它们没有提供其他内容。我能找到的唯一一个是:purchases.subscriptions().acknowledge(),但它不起作用。如果您发现一个错误,您的项目没有连接,并且您确定是,请尝试禁用并重新启用一个产品,在这个领域创建一个新产品或其他东西,它似乎会刷新Google端的内容。谢谢,这是有效的+1从控制台停用和激活应用内产品会出现错误“当前用户没有足够的权限来执行请求的操作”。走开,非常感谢您提供了这个示例,我可以确认它正在工作!如果您获得的权限不足错误,只需更改一个应用程序内产品(例如描述),它将在1-2分钟后工作(无需等待24小时+)在另一个网站上找到该提示