2013-04-10 1 views
1

Я перешел на аутентификацию OAuth2 для доступа к API Adwords. Я хочу использовать учетную запись службы, потому что наше приложение не имеет взаимодействия с пользователем. Поэтому я создал учетную запись службы в консоли API Google для учетной записи mcc. И используется:Adwords API, OAuth2 и учетная запись службы в Java

GoogleCredential credential = new GoogleCredential.Builder() 
.setTransport(new NetHttpTransport()) 
.setJsonFactory(new JacksonFactory()) 
.setServiceAccountId("[email protected]") 
.setServiceAccountScopes("https://adwords.google.com/api/adwords/") 
.setServiceAccountPrivateKeyFromP12File(file) 
.setServiceAccountUser("<MCC Account Email") 
.build(); 

, чтобы создать учетные данные.

Когда я теперь пытаюсь сделать вызов API или просто позвонить credential.refreshToken(), я получаю:

com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request 
{ 
    "error" : "access_denied" 
} 
at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:105) 
at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:303) 
at com.google.api.client.auth.oauth2.TokenRequest.execute(TokenRequest.java:323) 
at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.executeRefreshToken(GoogleCredential.java:345) 
at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:526) 

..

Может кто-нибудь сказать мне, что я делаю неправильно или что я пропустил делать ?

ответ

0

Нельзя сказать, что из фрагмента кода, который вы опубликовали, я использую то же самое в своем приложении, и все работает нормально.

Моей баночка версия:

google-api-services-oauth2-v2-rev9-1.7.2-beta.jar 
google-http-client-1.12.0-beta.jar 
google-oauth-client-1.12.0-beta.jar 

если вы из идей попытаться изменить версию библиотеки oauth2.

+0

Какие adwords Api вы используете? Я использую: com.google.api-объявления объявления Пб 1.14.1 com.google.api-объявления ADWORDS-оси 1,14. 1 com.google.http-client Google-клиента-клиент-jackson2 1.14.1 бета- user2265366

+0

Я не использую Adwords API. Попробуйте загрузить некоторые другие данные, например. пользовательским контактам или документу Google для проверки того, что проблема или проблема с аутентификацией для всех API-интерфейсов. –