2012-05-17 4 views
38

Я завершил шаги авторизации и получил токен доступа и обновил токен.Как создать токен доступа, используя токен обновления через API-интерфейс Google?

Что делать, чтобы создать токен доступа, используя токен обновления, который я сохранил через API-интерфейс Google?

Я не смогу использовать какой-либо sdk, так как я работаю на Force.com, поэтому, пожалуйста, предложите способ реализовать его непосредственно через API.

ответ

19

Если вы хотите осуществить это самостоятельно, 2.0 поток OAuth для приложений веб-сервера описана в https://developers.google.com/accounts/docs/OAuth2WebServer, в частности, следует проверить раздел об использовании маркера обновления:

https://developers.google.com/accounts/docs/OAuth2WebServer#refresh

+0

Документы, о которых вы упомянули, имеют дело только с Raw-HTTP-связью. Есть ли какой-либо метод в PHP-API для обновления токенов? –

+0

Проверьте https://developers.google.com/drive/credentials –

+0

@ClaudioCherubino ..i извините, что прервали u..but могли бы и плз рассказать мне. возможно ли получить авторизированный URL-адрес Google-диска, который можно использовать публично, как воспроизведение аудио и видео с помощью плеера-плеера. В iOS – NextStep

14

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

Если вы хотите использовать клиентскую библиотеку Google Api, вам просто нужно иметь токен доступа, который включает в себя токен обновления, а затем - даже если токен доступа истечет через час - библиотека обновится токен для вас автоматически.

Чтобы получить токен доступа с токеном обновления, вам просто нужно запросить тип автономного доступа (например, на PHP: $client->setAccessType("offline");), и вы его получите. Просто имейте в виду, что вы получите токен доступа с токеном обновления только в первой авторизации, поэтому обязательно сохраните этот токен доступа в первый раз, и вы сможете использовать его в любое время.

Надежда, что помогает кто-нибудь :-)

13

Если вы используете веб-API, то вы должны сделать HTTP POST вызова URL: https://www.googleapis.com/oauth2/v4/token со следующим телом запроса

client_id: <YOUR_CLIENT_ID> 
client_secret: <YOUR_CLIENT_SECRET> 
refresh_token: <REFRESH_TOKEN_FOR_THE_USER> 
grant_type: refresh_token 

обновление маркера никогда не истекают, так что вы может использовать его любое количество раз. Ответ будет JSON следующим образом:

{ access_token: 'ya....', token_type: 'Bearer', expires_in: 3599 } 
+0

не работает –

+0

работает прагматично с httpclient, не работает от почтальона в случае Кейс, а также. –

+2

Пожалуйста, попробуйте запросить тело как x-www-form-urlencoded. –