这是来自vimeo论坛的转发,但是由于没有人在那回答,所以我在这里试试运气:

我已经尝试了几个小时,以使我了解整个oAuth的问题,但是我似乎没有使它工作。我想使用advanced vimeo api检索私人视频的缩略图。这就是我现在所拥有的:

$vimeo = new phpVimeo($consumer_key, $consumer_secret, $access_token, $access_token_secret);
$result = $vimeo->call('vimeo.videos.getThumbnailUrls', array('video_id ' => $video_id));


当我这样尝试时,我不断收到错误

"Fatal error: Uncaught exception 'VimeoAPIException' with message 'Invalid signature' ".


我绝对肯定密钥和机密是正确的。我是否需要做更多的工作才能使此功能正常工作?当然,举一个例子,我只需要输入所有关键数据就可以了,这真是太神奇了。

提前致谢!

最佳答案

有两种方法可以帮助解决签名错误。首先,我想解释一些术语。


Api端点-您请求的api网址。
客户端ID /客户端密钥-创建Api应用程序时给您的一对令牌
请求令牌-授权用户时生成的令牌。此令牌不能用于进行api调用。
OAuth令牌/令牌秘密-通过授权工作流程向用户发送时给您的一对令牌
基本字符串-一种特殊格式的字符串,其中包含与您的API请求有关的所有信息。
OAuth签名-代表您提出的请求的哈希令牌。这是使用基本字符串,您的客户端ID和密码以及可选的oauth令牌和密码生成的。


故障排除


尝试使用最新版本的官方PHP库:https://github.com/vimeo/vimeo-php-lib

如果可行,则您的代码中存在问题。继续执行步骤2。
如果这样不起作用,请告诉Vimeo。您无需继续执行这些步骤。

使用Hueniverse交互式指南:http://hueniverse.com/oauth/guide/authentication/

发出请求并记录每个URL,标头和参数。还包括基本字符串。
单击所有加号以展开输入表单,然后填写所有适当的数据。

确保Hueniverse基本字符串与您自己生成的基本字符串匹配

如果匹配,并且签名仍然不正确,则可能是错误地执行了hmac签名。检查您所有的令牌,随时联系Vimeo。
如果基本字符串不匹配,请确保遵循以下规范:http://tools.ietf.org/html/rfc5849#section-3.4.1

如果其他所有方法均失败,则最好的选择是直接与Vimeo联系。他们可以查找您的身份验证令牌和期望的签名。

07-24 09:50
查看更多