2013-03-23 3 views
1

Я пытаюсь написать веб-приложение с использованием API Google Plus, и мне нужно настроить доступ OAuth с помощью java, я много искал и нашел java-стартер google и другие примеры и они были очень запутанными, я не могу понять, что код, который я должен написать, чтобы получить токен Надеюсь, если есть кто-то, кто может сказать мне, как получить доступ OAuth с помощью java в прямом шаге, я увидел другие вопросы на stackoverflow.com, но они не были очень полезны для меняДоступ OAuth 2.0 с API Google Plus в java

так что любая помощь будет очень признателен :)

ответ

6

Google+ Java Quickstart последняя является довольно простым, возможно, вы нашли Olde r при поиске? Кроме того, documentation for getting started on Google+ with Java должен помочь вам в этом.

Следующий фрагмент кода показывает соответствующий код для замены коды авторизации на токен доступа при использовании the hybrid client/server flow:

 GoogleTokenResponse tokenResponse = 
      new GoogleAuthorizationCodeTokenRequest(TRANSPORT, JSON_FACTORY, 
       CLIENT_ID, CLIENT_SECRET, code, "postmessage").execute(); 
     // Create a credential representation of the token data. 
     GoogleCredential credential = new GoogleCredential.Builder() 
      .setJsonFactory(JSON_FACTORY) 
      .setTransport(TRANSPORT) 
      .setClientSecrets(CLIENT_ID, CLIENT_SECRET).build() 
      .setFromTokenResponse(tokenResponse); 

Я удаляю строки исполнительских the requisite checks discussed in this thread для простоты.

 // Store the token in the session for later use. 
     request.session().attribute("token", tokenResponse.toString()); 

Следует отметить, что вы хотите сохранить эти учетные данные, если пользователь не отключит ваше приложение. Образец использует сеанс, потому что в производственных средах сеанс может поддерживаться с помощью DB и будет восстановлен после перезапуска сервера.

После того, как у вас есть токен доступа/обновления и срок действия, создайте учетные данные для токена OAuth v2, а затем библиотека будет внутренне обновлять токен доступа соответствующим образом. Следующий код показывает, как это делается на QuickStart путем извлечения данных лексем из сеанса пользователя, а также включает в себя вызов API, выполняемый клиентом, доказав Java-клиент сервера работает:

 // Build credential from stored token data. 
     GoogleCredential credential = new GoogleCredential.Builder() 
      .setJsonFactory(JSON_FACTORY) 
      .setTransport(TRANSPORT) 
      .setClientSecrets(CLIENT_ID, CLIENT_SECRET).build() 
      .setFromTokenResponse(JSON_FACTORY.fromString(
       tokenData, GoogleTokenResponse.class)); 
     // Create a new authorized API client. 
     Plus service = new Plus.Builder(TRANSPORT, JSON_FACTORY, credential) 
      .setApplicationName(APPLICATION_NAME) 
      .build(); 
     // Get a list of people that this user has shared with this app. 
     PeopleFeed people = service.people().list("me", "visible").execute(); 

Если вы хотите сделайте это по-другому, вы можете явно создать объект tokenData из токена доступа, обновить токен и т. д., прежде чем создавать объект службы Plus.

+0

Благодарим вас за быстрый ответ. Я использовал другой lib, и я использовал тот, который вы предоставили, и это сработало для меня :) –

+0

Я хочу задать другой вопрос: могу ли я получить поток пользователей или Newsfeed в Google Plus? или API предоставляет доступ только к собственным сообщениям пользователей? –

+0

Чтобы просмотреть данные о публичных мероприятиях, ознакомьтесь с activity.list, https://developers.google.com/+/api/latest/activities/list. Не стесняйтесь также задать еще один вопрос. – class

Смежные вопросы