我想使用 vimeo.videos.getInfo 方法来获取上传到我帐户的私有(private)视频的信息。我只会在一个网站上使用此应用程序,因此我将访问 token 硬编码到代码中。
我正在使用 Vimeo API 的官方 PHP 库 ( https://github.com/vimeo/vimeo.php )。
这就是我到目前为止所拥有的......
$vimeo = new Vimeo($apiKey, $apiSecret, $accessToken);
一切都好。起初,当我尝试示例中的示例代码时:
$user_data = $vimeo->request('/me');
print_r($user_data);
返回一个空数组:
Array (
[body] =>
[status] => 0
[headers] => Array
(
)
)
我注意到他们提到如果数组返回空,则可能与无效的 SSL 证书有关。现在,我只是在本地主机上进行开发,所以我将 CURLOPT_SSL_VERIFYPEER 设置为 false (感谢这些说明: http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/ )。我将其添加到 vimeo.php 第 112 行的数组中:
$curl_opt_defaults = array(
CURLOPT_HEADER => 1,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_SSL_VERIFYPEER => false);
一旦我这样做了,我就能够返回有关经过身份验证的用户的信息。
但这仍然返回一个空数组:
$params = array(
'video_id' => 95307197
);
$videos = $vimeo->request('vimeo.videos.getInfo', $params);
print_r($videos);
与我尝试放入其中的任何方法相同。我是否做错了 CURLOPT_SSL_VERIFYPEER 事情或者我的语法有其他问题?
最佳答案
我想我可以分享我的解决方案,这花了我一些时间才弄清楚。我还想访问私有(private)视频数据,即视频播放的时间数。这是我的步骤:
- 在 Vimeo 上创建应用程序并获取
Client Identifier
,Client Secret
,并生成Access Token
具有属性Public
,Private
,和Interact
。您可能需要根据您的访问需求添加或删除属性。 - 从 Vimeo 下载 PHP 源代码。
- 奇怪的是,至少在我的例子中,代码在语句
$name = array_slice(explode("/", $file_path), -1)[0];
的第 473 行有一个错误的语法。要解决此问题,请删除[0]
在最后!事实上,我不需要调用这个函数来知道它是否有任何危害,但这解决了我的问题。顺便说一句,我正在使用 Dreamweaver。 - 更奇怪的是,我的 Vimeo 提供的 PHP 代码无法使用他们的新系统进行身份验证,因此您需要添加此代码
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
在每个$response = curl_exec($curl);
之前陈述。这应该是 3 个补充。 - 最后,创建您自己的 PHP 脚本来访问私有(private)视频。
这是我的代码:
require("../Vimeo PHP path/autoload.php");
use Vimeo\Vimeo;
$client_id = "*****"; //your Vimeo number here
$client_secret = "*****"; //your Vimeo number here
$access_token = "*****"; //your Vimeo number here
$vim = new Vimeo($client_id, $client_secret, $access_token);
$response = $vim->request("/videos/****"); //your Vimeo PRIVATE video ID here
echo $response["body"]["stats"]["plays"];
就我而言,我做了 echo
仅适用于播放次数,但您可以打印整个 body 。希望这也能帮助别人。
关于php - Vimeo 新 API 的方法遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23663496/