好的就是这种情况。我正在构建一个简单的系统来自动化我拥有的youtube频道上的某些进程。我有一个CMS。我已经构建了我的结构,一切运行良好,我已经启用了两个API(Youtube Data API v3和ContentID API),并且我成功地发出了请求。我可以检索所有频道的上传,更改缩略图和brandingSettings,但我尝试了ChannelBanners.insert调用,它失败,500错误代码消息为null。
我已将我的应用授权给:
$cred = new Google_Auth_AssertionCredentials($network->clientEmail, array(
'https://www.googleapis.com/auth/youtubepartner',
'https://www.googleapis.com/auth/youtube'), $key);
$this->client->setAssertionCredentials($cred);
这是我调用上传横幅的功能。您可以看到我在课程中包装了项目中的所有内容。
public function uploadBanner($banner, $channelId)
{
try {
$chunkSizeBytes = 1 * 1024 * 1024;
$this->client->setDefer(true);
$chan = new Google_Service_YouTube_ChannelBannerResource();
$insertRequest = $this->youtube->channelBanners->insert($chan, array(
"onBehalfOfContentOwner" => $this->networkID));
$media = new Google_Http_MediaFileUpload(
$this->client,
$insertRequest,
'image/jpeg',
null,
true,
$chunkSizeBytes
);
$media->setFileSize(filesize($banner));
$status = false;
$handle = fopen($banner, "rb");
while (!$status && !feof($handle)) {
$chunk = fread($handle, $chunkSizeBytes);
$status = $media->nextChunk($chunk);
}
fclose($handle);
$this->client->setDefer(false);
$thumbnailUrl = $status['url'];
echo $thumbnailUrl;
$listResponse = $youtube->channels->listChannels('brandingSettings', array(
'onBehalfOfContentOwner' => $this->networkID,
'onBehalfOfContentOwnerChannel' => $channelId,
'managedByMe' => true,
));
$responseChannel = $listResponse[0];
$responseChannel['brandingSettings']['image']['bannerExternalUrl']=$thumbnailUrl;
$updateResponse = $youtube->channels->update('brandingSettings', $responseChannel);
}
catch(Google_Service_Exception $e)
{
echo $e->getMessage();
}
}
该方法失败并出现上述错误代码,我搜索了这个问题但没有太多关于它的信息。有人说500错误代码不是你的应用程序错误,因为服务器拒绝你的请求,你无能为力。有时候我得到Backend Error。甚至文档中的代码示例都不起作用。文档中的示例不适用于 Youtube合作伙伴。任何人都可以帮助我如何使这项工作。我试图通过Youtube API和PHP在我在CMS(onbehalfOfContentOwner)上管理的频道上传横幅。谢谢!