2015-12-29 18 views
3

上的一个小应用程序,需要在消息应用程序提交的用户Spotify的跟踪URL,并将其添加到公共Spotify的播放工作。该应用程序正在Heroku站点上使用spotipy python的帮助下运行(所以我有一个有效/回调)并监听发布跟踪URL的用户。完成通过桌面应用程序Spotify的授权码流,而无需使用浏览器

当运行通过命令行该应用中,我使用util.prompt_for_user_token。浏览器打开后,我成功移动身份验证流程,然后将提供的回调URL复制粘贴回终端。

当我运行这个程序,并尝试添加的消息应用的轨道,它不会打开用户进行身份验证的浏览器,所以验证流程永远不会完成。

有关如何处理此问题的任何建议?我可以通过终端验证一次,捕获代码/令牌,然后处理刷新过程,以便最终用户永远不必验证?

P.S.不能添加标签“spotipy”又吃了一惊它已经不可

回答

1

不幸的是,spotipy UTIL功能只返回的access_token,不是所有重要refresh_token。 access_token将在有限的时间后过期。此时,您需要使用refresh_token创建一个新的access_token。

我没有看到任何spotipy公共职能,让您抢refresh_token。但是,你总是可以创建一个包含以下组件的新的access_token:

  • 你的Spotify客户端ID(您的应用页面上找到)
  • 你的Spotify客户端密钥(您的应用页面上找到)
  • 您的Spotify刷新令牌 - 在这里看到了一种方式来获得,一旦 - https://developer.spotify.com/web-api/tutorial/

聪明人的话,在调试的时候,我要求一个新的使用的access_token邮差张贴到https://accounts.spotify.com/api/token - 它只是在heade指定工作后, RS

  • '的Content-Type': '应用程序/ X WWW的形式,进行了urlencoded'
+0

谢谢你,这是非常有帮助! –

2

有一次,我遇到了与谷歌的日历API类似的问题。该应用程序的重要性非常低,所以我通过在浏览器中本地运行auth来查找解决方案,找到响应令牌并手动将其复制到Heroku的环境变量中。当然,缺点是令牌设置为自动过期(我认为Google日历已设置为30天),因此应用程序定期停止工作,我必须通过验证流程并将密钥复制过来。有可能是一种自动化的方法。

祝你好运!

相关问题