Python Spotify API Как передать переменную во входную подсказку из ответа util.prompt_for_user_token - PullRequest
0 голосов
/ 18 июня 2019

Я работаю над созданием конвейера с помощью API spotify, который регистрирует мою историю потоковой передачи.Я планирую автоматизировать его, загрузив его в виде лямбда-функции и запланировав запуск каждые несколько часов.У меня все в основном в порядке, кроме того, что при первом запуске API требует веб-аутентификации.Вот мой код:

import spotipy
import spotipy.util as util
import urllib3

un = USERNAME
scope = 'user-read-recently-played'
cid = CLIENT_ID
csid = CLIENT_SECRET_ID
redr = r'http://localhost:8888/callback/'

token = util.prompt_for_user_token(un,scope,cid,csid,redr)

При первом запуске появляется это сообщение:

User authentication requires interaction with your
            web browser. Once you enter your credentials and
            give authorization, you will be redirected to
            a url.  Paste that url you were directed to to
            complete the authorization.


Opened <LINK HERE> in your browser


Enter the URL you were redirected to: 

А затем мне нужно скопировать ссылку из моего браузера в этупространство.Я могу получить URL-адрес, который мне нужно вставить, используя urllib3:

req_adr = ADDRESS_IT_OPENS_IN_BROWSER
http = urllib3.PoolManager()
resp = http.request('GET',req_adr)
redrurl = resp.geturl()

Но я не знаю, как передать его в приглашение ввода из ответа util.prompt_for_user_token

Любые предложениябудет очень приветствоваться.

1 Ответ

0 голосов
/ 19 июня 2019

Так что оказывается, есть обходной путь.Вы можете запустить его один раз на локальном компьютере, и он сгенерирует файл с именем .cache-USERNAME.Если вы включите этот файл в пакет развертывания, вам не придется копировать / вставлять URL-адрес, и его можно автоматизировать с помощью лямбда-функции в AWS.

...