2014-11-05 10 views
3

Я отчаянно пытаюсь получить доступ к Google Cloud Storage с Java. Моя задача состоит в том, что я должен создать общую библиотеку, и аутентификация на основе браузера невозможна.Google Cloud Storage - как авторизовать?

Что бы я ни делал, он всегда говорит мне «401 Несанкционированный». Я определенно, используя правильные учетные данные, ... Моя версия Java 1.7

Вот код:

 GoogleCredential credential = new GoogleCredential.Builder() 
      .setTransport(httpTransport) 
      .setJsonFactory(new JacksonFactory()) 
      .setClientSecrets("clientid", "clientsecret").build(); 

      storage = new Storage.Builder(httpTransport, JSON_FACTORY, credential).setApplicationName(
       "test-name") 
       .build(); 

Соответствующий идентификатор клиента и секрет устанавливается, как показано на консоли; Тем не менее, я всегда говорю «Вход в систему». Библиотека должна быть использована от рабочего процесса, так что это невозможно, что кто-то разрешает применение в окне браузера ...

Спасибо,

Марио

ответ

1

Я считаю, что совсем недавно мы обсуждали в человек, что эта проблема фактически решена с помощью Google Service счетов как описано здесь: https://developers.google.com/accounts/docs/OAuth2ServiceAccount

учетные данные встроенного, как это:

String emailAddress = "[email protected]"; 
JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); 
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); 
GoogleCredential credential = new GoogleCredential.Builder() 
    .setTransport(httpTransport) 
    .setJsonFactory(JSON_FACTORY) 
    .setServiceAccountId(emailAddress) 
    .setServiceAccountPrivateKeyFromP12File(new File("MyProject.p12")) 
    .setServiceAccountScopes(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN)) 
    .build(); 
Смежные вопросы