如何使用 Python 从 API 获取令牌?

How to get token from API with Python?

我需要获取令牌才能连接到 API。尝试使用 python 这个:

import requests, base64
url = 'https://api-b2b.alzura.com/common/login'
token_req = base64.b64encode(b'name:passwd').decode()
headers = {'Authorization': str(token_req)}
req = requests.post(url, headers=headers)
print(req)

并获得了 ,但没有令牌。 :D 我已经阅读了关于 python 的 post 部分,但它对我不起作用。

看来我完全错了。我应该 do/learn/read?

感谢您的宝贵时间!

更新 它应该是基本身份验证,看起来不需要任何用户机密。这是开发人员的小手册:

Get a login token and expire date. Returns the X-AUTH-TOKEN which is required for authentication of the remaining endpoints. Authentication for this endpoint is basic auth. For authentication, an authentication-header formatted as 'Alzura ID:Password' must be transmitted as a base64-encoded string.

首先注意必须从服务器获取token!出于安全考虑,需要令牌才能进行一些 API 调用。通常至少有两种类型的令牌:

  • 访问令牌:您可以使用它进行 API 调用(如上面的授权 header 中所述)。但是这个令牌通常会在很短的时间后过期。
  • 刷新令牌:使用此令牌在访问令牌过期后刷新它。

除了请求之外,您还应该使用 requests-oauthlib。
https://pypi.org/project/requests-oauthlib/
但首先,请阅读可用的代币获取工作流程:
https://requests-oauthlib.readthedocs.io/en/latest/oauth2_workflow.html#available-workflows
并选择适合您目的的正确工作流程。 (最常用的是Web App工作流)
然后,在您的代码中实现工作流程以获取令牌。获得有效令牌后,您可以使用它进行各种 API 调用。

附带说明:请务必在需要时刷新令牌。