.NET API调用AndroidPublisherService获取订阅资源遇401授权错误
解决Google Play Purchases.Subscriptions.Get接口401未授权问题
以下是几个排查和解决方向:
检查服务账号的Play控制台权限
光在Google云控制台给服务账号加权限没用,必须在Google Play控制台里给它分配对应权限:- 打开Google Play控制台 → 进入「用户和权限」页面
- 点击「邀请新用户」,输入服务账号的邮箱地址
- 勾选必要权限:至少要给「应用权限」下的「查看」权限,或者涉及订阅的财务数据权限,保存后等待权限生效(可能需要几分钟)
规范AccessToken的获取与使用
确保获取token时指定了正确的scope,并且让Google.Apis库自动处理认证流程,不要手动干预:// 用服务账号密钥文件初始化凭据 var credential = GoogleCredential.FromFile("your-service-account-key.json") .CreateScoped(AndroidPublisherService.Scope.Androidpublisher); // 初始化AndroidPublisher服务,让库自动处理认证 var publisherService = new AndroidPublisherService(new BaseClientService.Initializer { HttpClientInitializer = credential, ApplicationName = "Your App Name" }); // 调用接口 var getRequest = publisherService.Purchases.Subscriptions.Get( "your-package-name", "your-subscription-id", "purchase-token-from-notification"); var subscription = await getRequest.ExecuteAsync();手动获取token再传入容易出错,尽量让库自行管理认证。
核对调用参数的正确性
确认调用purchases.subscriptions.get时的三个参数:packageName、subscriptionId、purchaseToken完全和实时开发者通知返回的一致,尤其是purchaseToken不能有拼写错误或截断。确认Android Publisher API已启用
登录Google云控制台,搜索「Android Publisher API」,确认该API处于已启用状态。如果未启用,即使认证正确也会返回401错误。
内容的提问来源于stack exchange,提问作者DeNasti
相关产品推荐
相关产品推荐

