11

我正在使用 Google 客户端库并尝试GET向 Google Play API 发出请求。

        GoogleCredential credential= new GoogleCredential.Builder().setTransport(netHttpTransport)
                .setJsonFactory(jacksonFactory)
                .setServiceAccountId(CLIENT_ID)
                .setServiceAccountScopes(SCOPE)
                .setServiceAccountPrivateKeyFromP12File(file)
                .build();
                credential.refreshToken();     
        HttpRequestFactory requestFactory =netHttpTransport.createRequestFactory(credential);
        GenericUrl url = new GenericUrl(URI);
        HttpRequest request = requestFactory.buildGetRequest(url);
        HttpResponse response = request.execute();

我明白了

 {
  "code" : 401,
  "errors" : [ {
    "domain" : "androidpublisher",
    "message" : "This developer account does not own the application.",
    "reason" : "developerDoesNotOwnApplication"
  } ],
  "message" : "This developer account does not own the application."
}

我的应用程序未发布,这会导致问题吗?

4

4 回答 4

6

我有同样的问题。发生这种情况是因为您在 Google API 中授权不拥有该应用程序的用户并尝试获取属于您的应用程序的数据。

在这个主题中,它得到了很好的描述。http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=2528691&topic=16285&ctx=topic

您应该通过 OAuth2 授权应用程序的所有者,然后使用 Google API 获取令牌。

于 2012-10-29T11:17:15.873 回答
4

问题是您正在使用服务帐户 OAuth 2.0 流来授权 android-publisher API。我也是这样做的。然而,Google 要求使用 Web 服务器应用程序流程,这很荒谬,因为需要人工交互才能允许 API 访问。

幸运的是,有办法解决它。您只需要获取 refresh_token,将其存储并继续使用它以供将来的 API 调用。我在我的博客上写了更详细的内容。

于 2012-08-24T15:27:48.353 回答
1

我们也遇到了这个问题,因为我们想在我们的服务器上验证购买以解锁某些功能。我们尝试了多种解决方案和框架,由社区用户甚至官方实现编写,但都没有奏效。

事实证明,我们所要做的就是更新我们的 OAuth 令牌(我们刚刚创建),然后一切都开始工作了。

于 2013-01-09T14:05:39.770 回答
0

我怀疑这个问题正是在出版中。您首先需要将您的应用程序绑定到您的(开发人员)帐户,然后您将收到 CLIENT_ID 和其他凭据(例如密钥等)。

于 2012-06-26T14:22:20.573 回答