/** * 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 YouTube\VideoEntry $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 YouTube\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->setSummary(new App\Extension\Summary($body)); } else { if (!$videoId) { $videoId = $videoEntry->getVideoId(); $videoId = substr($videoId, strrpos($videoId, ':')); } $messageEntry->setId($this->newId($videoId)); $messageEntry->setSummary($this->newSummary($body)); } $insertUrl = 'https://gdata.youtube.com/feeds/api/users/' . $recipientUserName . '/inbox'; $response = $this->insertEntry($messageEntry, $insertUrl, '\\Zend\\GData\\YouTube\\InboxEntry'); return $response; }
public function testConvertInboxEntryToAndFromString() { $this->entry->transferFromXML($this->entryText); $entryXml = $this->entry->saveXML(); $newInboxEntry = new YouTube\InboxEntry(); $newInboxEntry->transferFromXML($entryXml); $this->verifyAllSamplePropertiesAreCorrect($newInboxEntry); $newInboxEntryXml = $newInboxEntry->saveXML(); $this->assertEquals($entryXml, $newInboxEntryXml); }
public function testSamplePropertiesAreCorrectV2() { $this->entry->setMajorProtocolVersion(2); $this->entry->transferFromXML($this->v2entryText); $this->verifyAllSamplePropertiesAreCorrectV2($this->entry); }