Beispiel #1
0
 /**
  * Send a video message.
  *
  * Note: Either a Zend_Gdata_YouTube_VideoEntry or a valid video ID must
  * be provided.
  *
  * @param string $body The body of the message
  * @param \Zend\GData\YouTube\VideoEntry (optional) The video entry to send
  * @param string $videoId The id of the video to send
  * @param string $recipientUserName The username of the recipient
  * @throws \Zend\GData\App\InvalidArgumentException if no valid
  *         Zend_Gdata_YouTube_VideoEntry or videoId were provided
  * @return \Zend\GData\YouTube\InboxEntry|null The
  *         Zend_Gdata_YouTube_Inbox_Entry representing the sent message.
  *
  */
 public function sendVideoMessage($body, $videoEntry = null, $videoId = null, $recipientUserName)
 {
     if (!$videoId && !$videoEntry) {
         throw new App\InvalidArgumentException('Expecting either a valid videoID or a videoEntry object in ' . '\\Zend\\GData\\YouTube->sendVideoMessage().');
     }
     $messageEntry = new InboxEntry();
     if ($this->getMajorProtocolVersion() == null || $this->getMajorProtocolVersion() == 1) {
         if (!$videoId) {
             $videoId = $videoEntry->getVideoId();
         } elseif (strlen($videoId) < 12) {
             //Append the full URI
             $videoId = self::VIDEO_URI . '/' . $videoId;
         }
         $messageEntry->setId($this->newId($videoId));
         // TODO there seems to be a bug where v1 inbox entries dont
         // retain their description...
         $messageEntry->setDescription(new Extension\Description($body));
     } else {
         if (!$videoId) {
             $videoId = $videoEntry->getVideoId();
             $videoId = substr($videoId, strrpos($videoId, ':'));
         }
         $messageEntry->setId($this->newId($videoId));
         $messageEntry->setSummary($this->newSummary($body));
     }
     $insertUrl = 'http://gdata.youtube.com/feeds/api/users/' . $recipientUserName . '/inbox';
     $response = $this->insertEntry($messageEntry, $insertUrl, '\\Zend\\GData\\YouTube\\InboxEntry');
     return $response;
 }