2014-02-08 2 views
1

잠시 동안 PHP를 사용하여 yt 실시간 이벤트를 성공적으로 만들었습니다.라이브 이벤트에 대한 contentDetails 설정 오류 - Youtube Live API v3

["Error calling POST https:\/\/www.googleapis.com\/youtube\/v3\/liveBroadcasts?part=snippet%2Cstatus: (400) contentDetails"] 

코드는 다음과 같다 :이 라인에서

      $client = new Google_Client(); 
          $client->setClientId($OAUTH2_CLIENT_ID); 
          $client->setClientSecret($OAUTH2_CLIENT_SECRET); 


          $client->refreshToken($tokens[0]['google_oauth_refresh_token']); 


          // Define an object that will be used to make all API requests. 
          $youtube = new Google_Service_YouTube($client); 



          // Check to ensure that the access token was successfully acquired. 
          if ($client->getAccessToken()) {  

              // die(); 


           // Create an object for the liveBroadcast resource's snippet. Specify values 
           // for the snippet's title, scheduled start time, and scheduled end time. 
           $broadcastSnippet = new Google_Service_YouTube_LiveBroadcastSnippet(); 
           $broadcastSnippet->setTitle($_POST['title']); 
           $broadcastSnippet->setDescription($_POST['description']); 
           $broadcastSnippet->setScheduledStartTime(date('c', strtotime($_POST['start_date']))); //'2034-01-30T00:00:00.000Z'); 
           $broadcastSnippet->setScheduledEndTime(date('c', strtotime($_POST['start_time']))); // '2034-01-31T00:00:00.000Z'); 

           $contentDetails = new Google_Service_YouTube_LiveBroadcastContentDetails(); 
           $contentDetails->setEnableEmbed(false); 
           // debug($contentDetails); 

           // Create an object for the liveBroadcast resource's status, and set the 
           // broadcast's status to "private". 
           $status = new Google_Service_YouTube_LiveBroadcastStatus(); 
           // $status->setPrivacyStatus('public'); 
           $status->setPrivacyStatus('private'); 
           // $status->setPrivacyStatus('unlisted'); 

           // Create the API request that inserts the liveBroadcast resource. 
           $broadcastInsert = new Google_Service_YouTube_LiveBroadcast(); 
           $broadcastInsert->setContentDetails($contentDetails); 
           $broadcastInsert->setSnippet($broadcastSnippet); 
           $broadcastInsert->setStatus($status); 
           $broadcastInsert->setKind('youtube#liveBroadcast'); 

           // Execute the request and return an object that contains information 
           // about the new broadcast. 
           $broadcastsResponse = $youtube->liveBroadcasts->insert('snippet,status', $broadcastInsert, array()); 

           // Create an object for the liveStream resource's snippet. Specify a value 
           // for the snippet's title. 
           $streamSnippet = new Google_Service_YouTube_LiveStreamSnippet(); 
           $streamSnippet->setTitle('Transcoder - '.$_POST['title']); 

           // Create an object for content distribution network details for the live 
           // stream and specify the stream's format and ingestion type. 
           $cdn = new Google_Service_YouTube_CdnSettings(); 
           $cdn->setFormat("720p"); 
           $cdn->setIngestionType('rtmp'); 

           // Create the API request that inserts the liveStream resource. 
           $streamInsert = new Google_Service_YouTube_LiveStream(); 
           $streamInsert->setSnippet($streamSnippet); 
           $streamInsert->setCdn($cdn); 
           $streamInsert->setKind('youtube#liveStream'); 

           // Execute the request and return an object that contains information 
           // about the new stream. 
           $streamsResponse = $youtube->liveStreams->insert('snippet,cdn', 
            $streamInsert, array()); 

           // debug($streamsResponse); 

           // Bind the broadcast to the live stream. 
           $bindBroadcastResponse = $youtube->liveBroadcasts->bind(
            $broadcastsResponse['id'],'id,contentDetails', 
            array(
             'streamId' => $streamsResponse['id'], 
            )); 

답변

2

: 나는 다음과 같은 오류를받은 내장하지 않도록 노력했습니다 때문에

$broadcastsResponse = $youtube->liveBroadcasts->insert('snippet,status', $broadcastInsert, array()); 

이 있어야한다 :

$broadcastsResponse = $youtube->liveBroadcasts->insert('snippet,status,contentDetails', $broadcastInsert, array()); 

설정중인 콘텐츠 ails의 임베디드 속성이지만 요청에 포함되지 않습니다. 오류를 읽으면 불만을 제기하는 것입니다.