我正在拼命地尝试在 youtube 上创建一个私人播放列表。创建公共播放列表没问题,文档非常好。但是我无法将指令“翻译”为代码。
您可以使用 API 更新播放列表的标题、描述和/或公共/私人状态。要更新播放列表,请修改该播放列表的 PlaylistListEntry 对象,然后调用该对象的保存方法。
我的代码:
$httpClient = isset($_SESSION['sessionToken'])? Zend_Gdata_AuthSub::getHttpClient($_SESSION['sessionToken']) : null;
$this->youtube = new Zend_Gdata_YouTube($httpClient, "CompanyName-AppName-0.1", null, $this->apikey);
// ...
$yt = $this->youtube;
$newPlaylist = $yt->newPlaylistListEntry();
$newPlaylist->description = $yt->newDescription()->setText('My Description');
$newPlaylist->title = $yt->newTitle()->setText('My Title');
$postLocation = 'http://gdata.youtube.com/feeds/api/users/default/playlists';
try {
$yt->insertEntry($newPlaylist, $postLocation);
} catch (Zend_Gdata_App_Exception $e) {
echo $e->getMessage();
}
最后一部分或多或少是文档中的示例代码。效果很好,但播放列表是公开的。
据我了解,$newPlaylist
是一个实例,PlaylistListEntry
因此应该有一种方法将其设为私有。我已经检查了对象源代码(及其超过 9000 个父对象)以及 的输出get_class_methods
,但是我发现没有任何方法可以将其设为私有。同样只是试图将私有/公共成员设置为 true/false 并没有帮助并导致错误消息(说没有这样的成员)。
我对 YouTube API 和 Zend 不是很有经验,如果有人能在这里帮助我,我将不胜感激。
根据我所读到的内容,可以通过向<yt:private />
请求添加标签来将播放列表设为私有。这听起来很简单,有没有办法手动将它添加到请求中?