Получение кода авторизации в Spotify API (запрос POST) - PullRequest
2 голосов
/ 01 октября 2019

Это подделка документация Я следую. Из трех вариантов «Потоки авторизации» я пробую « Поток кода авторизации ».

Законченный шаг 1. Ваша заявка на авторизацию запроса .

Застряла на шаге 2. Обновите ваш запрос приложения и получите токены

Он просит сделать запрос POST, содержащий параметры, закодированные в «application / x-www-form-urlencoded», как определено в спецификации OAuth 2.0: . Вот что я сделал до сих пор с моими ограниченными знаниями и поиском в Google.

import requests
import base64
from html import unescape 

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

params = {
    "grant_type": "authorization_code",
    "code": <authorization code I got from step 1>,
    "redirect_uri": "http://127.0.0.1:5000/", 
}

headers = {
    "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36",    
    "Content-Type": "application/x-www-form-urlencoded",
    "Authorization" : base64.b64encode("{}:{}".format(CLIENT_ID, CLIENT_SECRET).encode('UTF-8')).decode('ascii')
}

html = requests.request('post', url, headers=headers, params=params, data=None) 
print(html.text)

result, с кодом ответа 400

{"error":"invalid_client"}

Что мне нужно сделать, чтобы это работало? Я думал, что понял все параметры правильно.

...