使用官方Vimeo PHP库(https://github.com/vimeo/vimeo.php)
尝试使用客户端库的upload()
方法上传视频会返回以下http响应:
身份验证令牌缺少用户ID,必须在上传视频时提供。
但是,在调用upload()
方法之前,客户端ID,客户端密钥和令牌都在客户端上设置:
客户初始化:
$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
}
欢迎任何建议!
问题是使用的令牌是未经身份验证的令牌。我假设你只需要一个经过身份验证的令牌代表另一个用户上传。通过生成具有“上传”范围的新的经过身份验证的令牌,我可以使用上面发布的确切代码上传视频。
您生成的令牌未经身份验证,这意味着它只能在vimeo.com上公开读取元数据 - 它不能用于上载,检索数据或对帐户执行其他操作。
赠品是/ tutorials响应的最后一行:
"token_is_authenticated": false
在这里查看Vimeo开发者站点上的身份验证文档:https://developer.vimeo.com/api/authentication#understanding-auth-workflows