php - Vimeo 新 API 的方法遇到问题

标签 php curl vimeo-api

我想使用 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)视频数据,即视频播放的时间数。这是我的步骤:

  1. 在 Vimeo 上创建应用程序并获取 Client Identifier , Client Secret ,并生成 Access Token具有属性 Public , Private ,和Interact 。您可能需要根据您的访问需求添加或删除属性。
  2. 从 Vimeo 下载 PHP 源代码。
  3. 奇怪的是,至少在我的例子中,代码在语句 $name = array_slice(explode("/", $file_path), -1)[0]; 的第 473 行有一个错误的语法。要解决此问题,请删除 [0]在最后!事实上,我不需要调用这个函数来知道它是否有任何危害,但这解决了我的问题。顺便说一句,我正在使用 Dreamweaver。
  4. 更奇怪的是,我的 Vimeo 提供的 PHP 代码无法使用他们的新系统进行身份验证,因此您需要添加此代码 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);在每个 $response = curl_exec($curl); 之前陈述。这应该是 3 个补充。
  5. 最后,创建您自己的 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/

相关文章:

php - 在 NetBeans 中使用 Slim Framework 将 Php 连接到 MongoDB

php - 在 MySQL 中显示和分组两个连接表

vimeo-api - 尝试在vimeo中上传视频

vimeo - 无需向 Vimeo API 发出请求即可获取 Vimeo 视频的缩略图

php - Javascript 验证 if 语句

PHP 内存因服务器而异

php - 如何使用 curl 生成 Facebook 用户访问 token

ruby-on-rails - Ruby on Rails 和内容类型为 : text/plain 的 POST

cURL 命令 - Neo4j

php - API 错误 : Upload Video from server to Vimeo using PHP