Google Credential: эта учетная запись разработчика не имеет приложения
Я использую клиентские библиотеки Google и пытаюсь сделать запрос GET
API Google Play.
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."
}
Мое приложение не опубликовано, это вызовет проблему?
Ответы
Ответ 1
У меня такая же проблема. Это происходит потому, что вы авторизуете пользователя в Google API, который не владеет этим приложением и пытается получить данные, принадлежащие вашему приложению.
В этом разделе это хорошо описано. http://support.google.com/googleplay/android-developer/bin/answer.py?hl=en&answer=2528691&topic=16285&ctx=topic
Вы должны разрешить OAuth2 владельцу приложения, а затем использовать Google API с полученным токеном.
Ответ 2
Проблема в том, что вы используете поток служб OAuth 2.0 для авторизации API-интерфейса android-издателя. Я делал это так же. Однако Google требует использовать поток приложений веб-серверов, что смешно, так как для взаимодействия с API требуется взаимодействие с человеком.
К счастью, вокруг есть способ. Вам просто нужно получить refresh_token, сохранить это и продолжать использовать его для будущих вызовов API. Я написал об этом более подробно в своем блоге.
Ответ 3
Мы также боролись с этой проблемой, так как хотели проверить покупку на наших серверах, чтобы разблокировать некоторые функции. Мы пробовали несколько решений и фреймворков, написанных другими пользователями сообщества и даже официальными реализациями, но никто не работал.
Оказывается, все, что нам нужно было, это обновить токен OAuth (который мы только что создали), а затем все это начало работать.
Ответ 4
Я подозреваю, что проблема именно в публикации. Сначала вам нужно привязать свое приложение к своей учетной записи (разработчику), после чего вы получите CLIENT_ID и другие учетные данные (например, секретный ключ и т.д.).