我在用着Google Play Android 开发者 API https://developers.google.com/android-publisher/index服务器到服务器检查用户订阅的订阅状态,但在成功授权并请求现有订阅后,我收到 401 响应,其中包含以下消息“当前用户没有足够的权限来执行请求的操作”。
参观https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=XXXXXX https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=XXXXXX我可以看到我确实有请求的范围(https://www.googleapis.com/auth/androidpublisher https://www.googleapis.com/auth/androidpublisher)但我每次仍然得到相同的回应。
其他人也有同样的问题吗?
编辑:我已经看到了 Explore API 应用程序的功能,它在请求的查询字符串中添加了密钥,但我没有该值。在控制台中,我创建了一个服务帐户客户端 ID,其中包含客户端 ID、电子邮件地址和私钥,但没有显然 Explore API 使用的 API 密钥。
编辑编号2:我已将服务帐户生成的电子邮件添加到 Google Play 开发者控制台和 Google 钱包控制台,但我仍然无法访问。我正在使用 Nodejs 和谷歌-oauth-jwt https://www.npmjs.org/package/google-oauth-jwt因为google没有提供nodejs的lib。
这是我用来发出请求的代码:
var request = require('google-oauth-jwt').requestWithJWT();
function makeReq() {
request({
url: 'https://www.googleapis.com/androidpublisher/v1.1/applications/{packageName}/subscriptions/{subscriptionId}/purchases/{purchaseToken}',
jwt: {
// use the email address of the service account, as seen in the API console
email: '[email protected] /cdn-cgi/l/email-protection',
// use the PEM file we generated from the downloaded key
keyFile: 'purchases-test.pem',
// specify the scopes you wish to access
scopes: ['https://www.googleapis.com/auth/androidpublisher']
}
}, function (err, res, body) {
if (err) {
console.log(err);
} else {
console.log("BODY IS ------------------------------------------");
console.log(JSON.parse(body));
}
});
}
如果您的应用仅在封闭式 alpha 轨道中发布,您还必须在 Play 管理中心的“设置”->“帐户详细信息”中将服务帐户的电子邮件地址 (client_email) 添加到许可证测试人员中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)