【问题标题】:Authentication failure trying to upload Vimeo video尝试上传 Vimeo 视频的身份验证失败
【发布时间】:2019-07-16 13:46:15
【问题描述】:

使用官方的 Vimeo PHP 库 (https://github.com/vimeo/vimeo.php)

尝试使用客户端库的 upload() 方法上传视频会返回以下 http 响应:

身份验证令牌缺少用户 ID,必须在上传视频时提供。

但是,在调用upload() 方法之前,Client Id、Client Secret 和 Token 都在客户端上设置:

客户端初始化:

$this->setClient(new Vimeo($this->clientId, $this->clientSecret, $this->token));

调用上传方法:

     try{
        $videoUri = $this->getClient()->upload($path, [
            'name' => $name,
            'privacy' => [
                'view' => 'anybody'
            ]
        ]);
        return $videoUri;
    } catch (\Exception $e) {
        dump($e);
        return false;
    }

有一个教程端点,我使用上面创建的客户端调用它并得到以下响应:

{
    "message": "Success! You just interacted with the Vimeo API. Your dev environment is configured correctly, and the client ID, client secret, and access token that you provided are all working fine.",
    "next_steps_link": "https://developer.vimeo.com/api/guides/videos/upload",
    "token_is_authenticated": false
}

欢迎提出任何建议!

【问题讨论】:

  • clientId 与 userId 不同。 clientId 和 clientSecret 用于您创建的 API 应用程序,以便用户可以进行身份​​验证。我猜upload() 要求用户通过您的应用程序进行身份验证github.com/vimeo/vimeo.php#authenticated
  • 目的是上传到应用所属的账户,而不是经过身份验证的用户账户
  • 没有线索,抱歉。 github.com/vimeo/vimeo.php/blob/master/example/upload.php 有一个上传示例,看看是否有帮助
  • 这就是我遵循的说明! ??????

标签: php vimeo vimeo-api


【解决方案1】:

问题是正在使用的令牌是未经身份验证的令牌。我假设您只需要一个经过身份验证的令牌即可代表另一个用户上传。通过生成具有“上传”范围的新认证令牌,我能够使用上面发布的确切代码上传视频。

【讨论】:

    【解决方案2】:

    您生成的令牌未经身份验证,这意味着它只能读取 vimeo.com 上公开的元数据 - 它不能用于上传、检索数据或对帐户执行其他操作。

    赠品在 /tutorials 响应的最后一行:

    "token_is_authenticated": false
    

    在此处查看 Vimeo 开发者网站上的身份验证文档:https://developer.vimeo.com/api/authentication#understanding-auth-workflows

    【讨论】:

    • 感谢您的反馈 - 正如您在我的回答中看到的那样:)
    • @PiX06 不客气!直到我回答后才注意到您的回复:)
    猜你喜欢
    • 2014-05-29
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 2022-01-04
    • 2021-12-17
    相关资源
    最近更新 更多