2011-09-07 116 views
1

我正在使用Zend Framework(php),並試圖檢索由我訂閱的所有用戶上傳的最新視頻列表。與您在youtube.com上訪問您的「訂閱」頁面時看到的內容類似。YouTube GData API

我可以使用getSubscriptionFeed()爲我訂閱的所有用戶發出請求。然後我可以遍歷每一個請求getUserUploads()然後彈出第一個項目,但它永遠需要,並且看起來像很多不必要的工作。對於我想查找的所有用戶名,必須有一個查詢。

任何想法?

感謝, 豪伊

回答

2

如果有人有興趣:

最新的Zend框架(1.11.10)的版本不包括從獲取最新影片所有重要的方法你在谷歌的網站上記錄了here的訂閱。

所以我簡單地加入:

/** 
* Retrieves a feed of a user's subscriptions 
* 
* @param string $user (optional) The username of interest 
* @param mixed $location (optional) The URL to query or a 
*   Zend_Gdata_Query object from which a URL can be determined 
* @return Zend_Gdata_YouTube_VideoFeed The newest video for each subscription 
*/ 
public function getNewSubscriptionVideos($user = null, $location = null) 
{ 
    if ($user !== null) { 
     $uri = self::USER_URI . '/' . $user . '/newsubscriptionvideos'; 
    } else if ($location instanceof Zend_Gdata_Query) { 
     $uri = $location->getQueryUrl(); 
    } else { 
     $uri = $location; 
    } 
    return parent::getFeed($uri, 'Zend_Gdata_YouTube_VideoFeed'); 
} 

在上線561在Zend /目錄的GData的YouTube.php文檔(後getSubscriptionFeed方法)。

現在我可以打電話getNewSubscriptionVideos方法,並將它傳遞一個用戶名或「默認」,它將返回VideoEntities的陣列可以使用訪問:

$raw_new_subscription_videos = $_youtube->getNewSubscriptionVideos($username); 

foreach ($raw_new_subscription_videos as $video) 
{ 
    $title = $video->getVideoTitle(); 

    // etc. 
} 

希望這有助於其他人誰是在過去的幾個小時裏我失去了。

豪伊

+1

它通常是不可取的直接修改LIB文件 - 「黑客核心」 - 就像那些在ZF LIB;由於新版本不會進行修改,因此可以升級問題。更好的做法是創建自己的課程 - 像「My_Gdata_YouTube擴展Zend_Gdata_YouTube」 - 並在其中添加新的方法。然後,作爲頂級的櫻桃,可能會提交[issue](http://framework.zend.com/issues/)以用於省略的功能,然後將補丁返回給ZF項目本身。 ;-) –

+0

這是一個偉大的想法 - 甚至沒有跨過我的腦海 - 我非常興奮,我添加的代碼工作。我會去做。 – Ward