getUserUploads() は使えない。Zend_Gdata_YouTube + Zend_Paginator を使って自分の動画リストを表示するサンプル

ハマりポイントがあまりにも多かったので自分用にメモ
やりたかった事は単純で、自分の動画リストをページ送りで取得したかっただけ。

Zend_Gdata_YouTube

サンプルソースは確かに動くのだけど、
パラメータを追加したいとか、ちょっとした指定でとたんにサンプルソースは使えなくなる。

Zend_Gdata_YouTubeの出来がちょっと酷い。

getUserUploads()は引数$locationを与えれば、クエリーされると思いきやソースを見たら全然違った。

\Zend\Gdata\YouTube.php

なんじゃこりゃー
$userを与えたら他は無視という仕様。
パラメータを付けるならリクエストURLから全部書けってどういうことさ。

他にもgetVideoEntry()getUserProfile()・・・いろいろ関数はあるが、パラメータをつけたいときは全て無駄。
結局はgetVideoFeed()と同じ動作になる。

ってことでgetUserUploads()を使わず、Zend_Paginatorも使って目的の動作をさせるためにこう書いた。

Zend_Paginator_Adapterの種類はNull
最初Zend_Paginator_Adapter_Arrayじゃないのかなと思ったけど、Array型は全配列が存在するときに使う。
・・・実際どんな場面に利用できるのかイメージできないけど。

YoutubeAPIが返すトータル件数を取得するときは$videoFeed->totalResultsで参照するのではなく->getText()をチェインする。

こんな基本動作が、公式サンプルには全く書かれてない・・。
たったこれだけでとても苦労した。

参考

ZEND FRAMEWORK – Zend Paginator with Gdata Youtube

デベロッパー ガイド: PHP

デベロッパー ガイド: Data API プロトコル – API クエリ パラメータ

WordPressで自分のYouTubeの動画をリスト表示する簡単なプラグインを作ってみる

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL