2015-02-27 6 views
0

Я попытался это обновить свой маркер доступаКак обновить токен доступа, используя токен обновления в вашей трубке api?

import urllib 
endpoint='https://accounts.google.com/o/oauth2/token' 
data={'client_id':'25********15-6*********************7f.apps.googleusercontent.com','client_secret':'4********Pj-K*****x4aM','refresh_token':'1/tP************************O_XclU','grant_type':'refresh_token'} 
encodedData=urllib.urlencode(data) 
from httplib2 import Http 
h = Http() 
resp, content = h.request(endpoint, "POST", encodedData) 

Но получил сообщение об ошибке

'{\n "error" : "invalid_request",\n "error_description" : "Required parameter is missing: grant_type"\n}' 

ответ

1

Вы должны указать заголовки в своем запросе, как это:

resp, content = h.request(uri=endpoint, 
          method="POST", 
          body=encodedData, 
          headers={'Content-type': 'application/x-www-form-urlencoded'}) 
0

старый -refresh_token - это токен обновления, который у вас есть

CLIENT_ID, client_secret являются учетными данными вы можете найти те, в консоли разработчика Google

http = httplib2.Http() 
TOKEN_URL = "https://accounts.google.com/o/oauth2/token" 

headers = {'Content-Type': 'application/x-www-form-urlencoded'} 
parameters = urllib.urlencode({'refresh_token': old-refresh_token, 'client_id': CLIENT_ID, 'client_secret': CLIENT_SECRET, 'grant_type': 'refresh_token'}) 
resp, response_token = http.request(TOKEN_URL, method='POST', body=parameters, headers=headers) 
token_data = json.loads(response_token) 
access_token = token_data['access_token'] 

переменная access_token теперь держит ваш маркер доступа

попробовать его

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