Vimeo.php:简单请求无效

Vimeo.php : simple request not working

我正在尝试在我正在开发的 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 对我来说有点晦涩,知道我做错了什么吗?

您要找的词是Variables Scope

The scope of a variable is the context within which it is defined. For the most part all PHP variables only have a single scope. This single scope spans included and required files as well.

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

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

示例:

$var = 'something';

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

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

Ofir Baruch 的回答非常有帮助,但我正在回答我自己的问题以获得更彻底的修复。 $lib的范围确实有问题,但是第一个请求参数也有问题。 Vimeo.php 库构建了一个 URL 像这样: 'api.vimeo.com' 。 'first_argument'。这是对我有用的固定代码:

// 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;
}