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
非公開にする方法は見つかりませんでした。また、private/public メンバーを true/false に設定しようとしても役に立たず、エラー メッセージが表示されます (そのようなメンバーは存在しないということです)。
私は YouTube API と Zend の経験があまりありません。誰かがここで私を助けてくれたら本当にありがたいです。
私が読んだこと<yt:private />
から、リクエストにタグを追加することで、プレイリストを非公開にすることができます。これはかなり単純に聞こえますが、リクエストに手動で追加する方法はありますか?