Vimeo.php:简单的请求不起作用

时间:2017-11-02 15:33:08

标签: php vimeo-api

我正在尝试在我正在开发的WordPress网站上使用vimeo.php。我已经下载了库并将其放在我主题的文件夹中。我还在Vimeo API的网站上创建了一个应用程序。我使用下面的代码:

// Include Vimeo's php library
require_once( "/assets/php/vimeo.php-1.3.0/autoload.php");
$client_id = 'xxxx'; //'Client identifier' in my app
$client_secret = 'xxxx'; // 'Client secrets' in my app
$lib = new \Vimeo\Vimeo($client_id, $client_secret);

function get_Vimeo(){
    $response = $lib->request('https://vimeo.com/6327777', array(), 'GET');
    return $response;
}

当我调用get_Vimeo()函数时,我得到一个Fatal error: Call to a member function request() on null

Vimeo的API对我来说有点模糊,不知道我做错了什么?

2 个答案:

答案 0 :(得分:2)

您正在寻找的术语是Variables Scope

  

变量的范围是定义它的上下文。对于   大多数PHP变量只有一个范围。这个单身   范围跨度包括和所需文件。

$lib是您在文件中定义的变量。 你不能仅仅因为它在文件中而在函数中访问它,它是另一个范围。

在函数中使用global $lib以访问它。

示例:

$var = 'something';

function testA(){
  echo $var; //null
}

function testB(){
  global $var;
  echo $var; //something
}

答案 1 :(得分:0)

Ofir Baruch的回答非常有帮助,但我回答了我自己的问题以获得更彻底的解决方案。 $lib的范围确实存在问题,但第一个请求参数也存在问题。 Vimeo.php库构建了一个如下所示的URL:' api.vimeo.com' 。 ' first_argument&#39 ;.以下是适用于我的固定代码:

// Include Vimeo's php library
require_once( "/assets/php/vimeo.php-1.3.0/autoload.php");
$client_id = 'xxxx'; //'Client identifier' in my app
$client_secret = 'xxxx'; // 'Client secrets' in my app
$lib = new \Vimeo\Vimeo($client_id, $client_secret);

// Set the access token (from my Vimeo API app)
$lib->setToken('xxx...xxx');

function get_Vimeo(){
    global $lib;
    $response = $lib->request('/videos/6327777', array(), 'GET');
    return $response;
}