11

GETGoogleクライアントライブラリを使用していて、 GooglePlayAPIにリクエストを送信しようとしています。

        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=ja&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 に答える