我想从access token
获得一个Spotify
。我从Spotify
那里得到了一些东西:
我在地址栏中看到了它。其中https://example.com/callback
是我的网站,access_token
需要价值。如何获得?
我曾这样尝试过,但得到了None
print(flask.request.args.get('access_token'))
完整代码
import flask
app = flask.Flask(__name__)
@app.route("/")
def render_index():
return flask.render_template('index.html')
@app.route("/redirect_spotify_token", methods = ['POST'])
def redirect_spotify_token():
return flask.redirect('https://accounts.spotify.com/authorize?...')
@app.route("/callback/spotify_token", methods = ['POST', 'GET'])
def callback_token():
#
# how to get access token?
#
return 'ok'
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080)
答案 0 :(得分:0)
我通过服务repl.it
完成我的项目。也许这就是为什么我无法读取请求的args
flask.request.args.get('access_token')
解决方案
从Spotify重定向到/callback_token
。在这种情况下,函数arg token
是None
。我的页面callback_token.html
是解析网址,并使用callback_token()
重定向到token
。
main.py
@app.route("/callback_token")
@app.route("/callback_token/<token>")
def callback_token(token=None):
if token is None:
return render_template('callback_token.html')
else:
#logic with token
return redirect(url_for('index'))
callback_token.html 和javascript
var parsedHash = new URLSearchParams(
window.location.hash.substr(1)
);
location.href = `your_url.com/callback_token/${parsedHash.get('access_token')}`