通过代理获取 pyLast 5.5 的会话密钥
在 pyLast 发出令牌与会话密钥请求之前,先配置 network 对象的路由。
只要提供了足够的登录信息,pyLast 在构造 network 对象时就可能发出认证请求。若要先把路由配置好,请在创建 network 时不要触发这条认证流程。
下面的示例使用 pyLast 5.5 的代理 URI 接口和公开的网页认证辅助方法:
import pylast
network = pylast.LastFMNetwork(api_key=api_key, api_secret=api_secret)
network.enable_proxy('http://proxy.example.net:8080')
generator = pylast.SessionKeyGenerator(network)
authorization_url = generator.get_web_auth_url()
应用会提供自己的 API key 和 secret。对于允许未认证中间人的公开 Last.fm API 路由,请在 enable_proxy 中使用 HTTP 代理列表中的端点;这些端点不会提供提供商的凭据。最后一次调用会通过已配置的 network 对象取回认证令牌。请让用户打开得到的 URL 并授权该应用。
授权之后,用同一个 generator 获取会话密钥:
network.session_key = generator.get_web_auth_session_key(authorization_url)
generator 会保留与该 URL 关联的令牌。在这两步之间保持同一个 network 和 generator,就能保住已配置的路由和待处理的认证状态。
当密钥已经存在时
如果已经保存了会话密钥,就在创建 network 时把它作为 session_key 传入,然后在第一次 API 调用之前启用代理。构造函数不必再请求另一个密钥。只读查询同样可以使用已配置的 network,而不启动这条授权流程。