2011-09-07 3 views
1

저는 Zend Framework (php)를 사용 중이며 내가 구독하는 모든 사용자가 업로드 한 최신 동영상 목록을 검색하려고합니다. youtube.com에서 구독 정보 페이지를 방문하면 볼 수있는 것과 유사합니다.YouTube GData API

내가 구독하는 모든 사용자에 대해 getSubscriptionFeed()를 사용하여 요청할 수 있습니다. 그런 다음 각 항목을 반복하여 getUserUploads()를 요청한 다음 첫 번째 항목을 팝핑 할 수는 있지만 영원히 걸리고 많은 불필요한 작업처럼 보입니다. 찾으려는 모든 사용자 이름으로 작성할 수있는 단일 쿼리가 있어야합니다.

아이디어가 있으십니까?

아무도 관심이 경우

감사합니다, 호위

답변

2

:

젠드 프레임 워크 (1.11.10)의 최신 버전에서 최신 동영상을 검색 할 수있는 가장 중요한 방법을 포함하지 않는 구독은 Google의 사이트에 here 문서화되어 있습니다.

는 그래서 단순히 추가 : 라인 561에 젠드 /의 GData 디렉토리에 YouTube.php 문서에

/** 
* 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'); 
} 

합니다 ( 방법을 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 extends Zend_Gdata_YouTube'와 같은 자신 만의 클래스를 생성하고 거기에 새 메소드를 추가하는 것이 더 좋습니다. 그리고 맨 위에있는 체리처럼 생략 된 기능에 대해 [issue] (http://framework.zend.com/issues/)를 제출하고 ZF 프로젝트 자체에 패치를 다시 제출하십시오. ;-) –

+0

좋은 생각 이네요. 내 마음을 넘지도 않았어요. 너무 흥분해서 제가 추가 한 코드가 효과가있었습니다. 내가 할게. – Ward