Class 尝试加载 YouTube 时未找到 PHP API
Class not found while trying to load YouTube PHP API
我一直在尝试加载 YouTube API(通过 Google 客户端 v2.5),但我一直 运行 出错:
"error_message": "Class 'Google_Service_YouTube_Resource_Activities' not found",
"location": "[path snip]\/external\/google\/apiclient-services\/src\/Google\/Service\/YouTube.php:100"
作为测试,我尝试了 运行 the GitHub page 上的基本示例,并且书籍 API 已正确加载。 (请求失败,因为 Books 范围未注册到我的 API 键,但它确实加载正确并尝试调用。)所以,自动加载似乎工作正常,除了 YouTube API每次都卡在这里。
试图加载 API 的代码位于命名空间内的 class 的构造函数中:
$this->gclient = new \Google_Client();
$this->gclient->setApplicationName($settings['appname']);
$this->gclient->setDeveloperKey($settings['apikey']);
$this->gclient->addScope(\Google_Service_YouTube::YOUTUBE_READONLY);
$this->yclient = new \Google_Service_YouTube($this->gclient);
这些库是通过 PHP Composer 安装的,vendor
路径已使用其选项修改为 external
。服务器是 运行 PHP 7.3.19.
我不确定 gclient 和 yClient 是什么。
对于初学者,您似乎忘记添加您的客户端密钥 json 文件。我不确定您要使用哪种方法,但大多数 youtube api 都需要身份验证。你只有一个 api 键,它只能在 public 方法上工作。
$client = new Google_Client();
$client->setAccessType("offline"); // offline access. Will result in a refresh token
$client->setIncludeGrantedScopes(true);
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->addScope([YOUR SCOPES HERE]);
$client->setRedirectUri(getRedirectUri());
$service = new Google_Service_Youtube($client);
事实证明,问题出在文件权限上。在 运行 chmod
修复问题后,它现在可以工作了。
我一直在尝试加载 YouTube API(通过 Google 客户端 v2.5),但我一直 运行 出错:
"error_message": "Class 'Google_Service_YouTube_Resource_Activities' not found",
"location": "[path snip]\/external\/google\/apiclient-services\/src\/Google\/Service\/YouTube.php:100"
作为测试,我尝试了 运行 the GitHub page 上的基本示例,并且书籍 API 已正确加载。 (请求失败,因为 Books 范围未注册到我的 API 键,但它确实加载正确并尝试调用。)所以,自动加载似乎工作正常,除了 YouTube API每次都卡在这里。
试图加载 API 的代码位于命名空间内的 class 的构造函数中:
$this->gclient = new \Google_Client();
$this->gclient->setApplicationName($settings['appname']);
$this->gclient->setDeveloperKey($settings['apikey']);
$this->gclient->addScope(\Google_Service_YouTube::YOUTUBE_READONLY);
$this->yclient = new \Google_Service_YouTube($this->gclient);
这些库是通过 PHP Composer 安装的,vendor
路径已使用其选项修改为 external
。服务器是 运行 PHP 7.3.19.
我不确定 gclient 和 yClient 是什么。
对于初学者,您似乎忘记添加您的客户端密钥 json 文件。我不确定您要使用哪种方法,但大多数 youtube api 都需要身份验证。你只有一个 api 键,它只能在 public 方法上工作。
$client = new Google_Client();
$client->setAccessType("offline"); // offline access. Will result in a refresh token
$client->setIncludeGrantedScopes(true);
$client->setAuthConfig(__DIR__ . '/client_secrets.json');
$client->addScope([YOUR SCOPES HERE]);
$client->setRedirectUri(getRedirectUri());
$service = new Google_Service_Youtube($client);
事实证明,问题出在文件权限上。在 运行 chmod
修复问题后,它现在可以工作了。