Youtube Data API ChannelBanners.Insert调用失败,错误代码为500

时间:2015-02-26 22:16:38

标签: youtube youtube-api youtube-data-api

好的就是这种情况。我正在构建一个简单的系统来自动化我拥有的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)上管理的频道上传横幅。谢谢!

0 个答案:

没有答案