2015-05-31 2 views
1

Использование Python, я пытаюсь сделать POST вызов к API Spotify, следуя инструкциям по пункту Клиентские Credentials Flow по ссылке https://developer.spotify.com/web-api/authorization-guide/#client_credentials_flow и это код, который я придумал. Тем не менее, я получаю ответ [415], когда я его запускаю. Может ли кто-нибудь сказать мне, что не так?Python: Spotify API Почтовый вызов?

import pprint 
import requests 
import urllib2 
import json 
import base64 

client_id='b040c4e03217489aa647c055265d0ac' 
client_secret='2c2928bb7d3e43278424002d2e8bda46b' 
authorization_param='Basic ' + base64.standard_b64encode(client_id + ':' + client_secret) 
grant_type='client_credentials' 

#Request based on Client Credentials Flow from https://developer.spotify.com/web-api/authorization-guide/ 

#Header must be a base 64 encoded string that contains the client ID and client secret key. 
#The field must have the format: Authorization: Basic <base64 encoded client_id:client_secret> 
header_params={'Authorization' : authorization_param} 

#Request body parameter: grant_type Value: Required. Set it to client_credentials 
body_params = {'grant_type' : grant_type} 

url='https://accounts.spotify.com/api/token' 

response=requests.post(url, header_params, body_params) # POST request takes both headers and body parameters 
print response 
+0

состояние 400 является то, что вы хотите? – Ajay

+0

нет ... 400 - плохая просьба. Мне нужно 200 –

+0

'header_params = {'Авторизация': authorization_param, 'grant_type': grant_type}' 'response = requests.post (url, header_params)' попробуйте это – Ajay

ответ

6

Тип аутентификации, запрашиваемой Spotify, является просто базовой проверкой подлинности HTTP. Это стандартизованная форма аутентификации, которую вы можете узнать больше о here. Библиотека запросов поддерживает базовую аутентификацию, не требуя, чтобы вы сами создавали заголовки. Для получения информации см. python requests documentation.

ниже код использует проверку подлинности библиотеки запроса для подключения к API Spotify.

import requests 

client_id = # Enter your client id here 
client_secret = # Enter your client secret here 

grant_type = 'client_credentials' 

#Request based on Client Credentials Flow from https://developer.spotify.com/web-api/authorization-guide/ 

#Request body parameter: grant_type Value: Required. Set it to client_credentials 
body_params = {'grant_type' : grant_type} 

url='https://accounts.spotify.com/api/token' 

response=requests.post(url, data=body_params, auth = (client_id, client_secret)) 
print response 

Я создал тестовую учетную запись с Spotify и создал идентификатор тестового клиента и секрет клиента, который работал для поиска. Я получил ответ 200, используя python 2.7.6 и запросы 2.2.1.

+0

Супер полезный - работает и для меня. Спасибо mpursuit! –

+0

Пожалуйста, задайте ответ mpursuit как правильный, будет ясно, что на этот вопрос был дан правильный ответ и, конечно же, даст ему некоторые из этих сладких, сладких точек. –

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