首页 > 解决方案 > vimeo api 在生成访问令牌时不返回用户凭据

问题描述

我想使用the authorization code grantvimeo API 来获取访问令牌。这就是我尝试为文档code第 1 步生成的方式:

$client_id = 'xxxx';
$client_secret = 'yyyyy';

$redirect_uri = 'http://localhost/somepath';
$scopes = 'private';
$state = 'randomcharstring';

$lib = new \Vimeo\Vimeo($client_id, $client_secret);
$url = $lib->buildAuthorizationEndpoint($redirect_uri, $scopes, $state);

当我运行代码时,它给了我这个网址:

https://api.vimeo.com/oauth/authorize?response_type=code&client_id=xxxx&redirect_uri=localhost/somepath&scope=private&state=randomcharstring1

这对应于文档的第 3 步。当我运行 URL 链接时,我被重定向到 vimeo oath/authorize 以允许用户使用 vimeo 或其他东西。

另一个重定向到我的本地主机:

http://localhost/somepath?state=randomcharstring1&code=zzzzzzzzzz

之后,我使用带有 POST 方法的 POSTMAN 来尝试使用以下代码获取访问令牌,基于步骤 4

URL: https://api.vimeo.com/oauth/access_token
Headers:
    Authorization: basic base64_encode(xxxx:yyyyy)
    Content-Type: application/json
    Accept: application/vnd.vimeo.*+json;version=3.4

Body:
    {
        "grant_type": "authorization_code",
        "code": "zzzzzzzzzz",
        "redirect_uri": "http://localhost/somepath"
    }

但我总是得到这个错误:

{
    "error": "invalid_client",
    "error_description": "A valid client ID must be provided along with any request made to Vimeo's API"
}

注意:uri 不是这种格式,它有http%3Aetc 只是为了便于阅读。

标签: oauthvimeo-api

解决方案


推荐阅读