如何生成 Vimeo 未经身份验证的访问令牌?

How to generate Vimeo unauthenticated access token?

我是 Vimeo's api, i am looking for a way to make unauthenticated requests. I find out that i will need to generate unauthenticated access token, but i don't see any option to do that in the Vimeo's apps console 的新手。有人可以帮忙吗?

该应用程序页面尚不支持手动构建未经身份验证的访问令牌(即将推出!)。现在您必须以编程方式请求它们。

幸运的是,它们不会过期,因此您只需生成一次。这是关于如何生成此令牌的快速 walk-through。

  1. 从您的应用程序页面获取您的客户 ID 和密码。
  2. 将它们拼在一起,中间加一个冒号(例如 abcd1234:edgh678)
  3. Base64 编码整个字符串(您可以在网上找到编码器,很多 public 网站)
  4. 构造请求(可以使用curl、a browser tool,或者你最喜欢的http请求工具)。
    • HTTP 方法:POST
    • HTTP URL: https://api.vimeo.com/oauth/authorize/client
    • HTTP Headers: Authorization: basic <your base 64 encoded token>
    • 请求Body:grant_type=client_credentials&scope=public%20private

授权 header 不再通过 Vimeo 开发者网站上的应用程序页面提供。相反,您需要使用以 base64 编码的令牌自己构建身份验证 header,如下所示:

'Authorization: basic ' + base64(client_id + ':' + client_secret)

其中 client_idclient_secret 可以在您的应用程序页面上找到。您应该使用的最终 header 如下所示:

Authorization: basic xxxxxxxxxxxxxxxxxxxxxxxxx

使用requests_oauthlibrequestoauthlib的好方法:

client = BackendApplicationClient(client_id=client_id)
auth = requests.auth.HTTPBasicAuth(client_id, client_secret)
oauth = OAuth2Session(client=client)
access_token = oauth.fetch_token(token_url= 'https://api.vimeo.com/oauth/authorize/client', auth=self.auth)