API Dailymotion получает токен обновления Python request.post
Я хочу получить токен обновления от API Dailymotion по этому коду
def get_refresh_token(code):
platform = Platform.objects.get(name='Dailymotion')
secret_key = platform.secret_key
api_key = platform.api_key
redirect_uri = platform.callback_url
params = {
'code' : code,
'client_id' : api_key,
'client_secret' : secret_key,
'grant_type':'authorization_code',
'redirect_uri':redirect_uri
}
r = requests.post('https://api.dailymotion.com/oauth/token',data=params)
print (r.json())
print(code)
print(r.data)
refresh_token = r.json().get('refresh_token')
return refresh_token
но это не работает ошибка: {'error_description': 'Invalid authorization code.', 'error': 'invalid_grant'}
.Я пытался с тем же кодом,grant_type... пост из расширений Chrome, и это работает. Что я сделал не так с кодом Python?
1 ответ
def get_refresh_token(self, code):
args = {
'grant_type': 'refresh_token',
'refresh_token': code,
'client_id': DAILYMOTION_API_KEY,
'client_secret': DAILYMOTION_API_SECRET,
}
url = 'https://api.dailymotion.com/oauth/token'
data = urllib.urlencode(args)
request = urllib2.Request(url, data)
response = urllib2.urlopen(request)
html = response.read()
obj_Response = literal_eval(html)
return obj_Response
Получая AccessToken, мы получаем параметр code, здесь мы должны поместить это значение вместо кода.