2017-10-11 1 views
0

Je peux déjà créer des événements de diffusion dans YouTube Live, maintenant j'essaie de modifier ceux qui existent déjà avec l'API de mise à jour.Youtube API - PHP - Comment modifier l'heure de début d'une diffusion existante?

Le problème est que la bibliothèque VideoSnippet ne le permet pas, cela doit être fait d'une autre manière.

(Cette fonction PHP doit être appelé par le frontend avec une demande ajax)

function updateBroadcast(){ 
    if(!isset($client)){ 
     $client = getClient(); 
    } 
    $streamData = $_POST['streamData']; 

    $client->setAccessToken($_SESSION['google_access_token']); 
    $service = new Google_Service_YouTube($client); 

    if ($client->getAccessToken()) { 

     try { 
      $videoId = $streamData['id']; 

      // Call the API's videos.list method to retrieve the video resource. 
      $listResponse = $service->videos->listVideos("snippet", 
       array('id' => $videoId)); 

      if (empty($listResponse)) { 
       return json_encode(sprintf('Can\'t find a video with video id: %s', $videoId)); 
      } else { 
       // Since the request specified a video ID, the response only 
       // contains one video resource. 
       $video = $listResponse[0]; 
       $videoSnippet = $video['snippet']; 

       $videoSnippet->setTitle($streamData['eventName']); 
       $videoSnippet->setDescription($streamData['eventCategory']); 
       $videoSnippet->setScheduledStartTime($streamData['eventDateTime']) 
      } 

     } catch (Google_Service_Exception $e) { 
      echo sprintf('<p>A service error occurred: <code>%s</code></p>', 
       htmlspecialchars($e->getMessage())); 
     } catch (Google_Exception $e) { 
      echo sprintf('<p>An client error occurred: <code>%s</code></p>', 
       htmlspecialchars($e->getMessage())); 
     } 
     return json_encode("Video Updated"); 
    } 
} 

Il lance cette erreur:

Erreur fatale: Appel à la méthode non définie Google_Service_YouTube_VideoSnippet :: setScheduledStartTime() dans /var/www/html/production/app/empowerir/php/videoStreaming/functions.php en ligne 242

ligne 242 est:

$videoSnippet->setScheduledStartTime($streamData['eventDateTime']) 

Répondre

0

Si vous lisez l'erreur, il devrait déjà vous dire quel est le problème:

Call to undefined method Google_Service_YouTube_VideoSnippet::setScheduledStartTime()

En regardant LiveBroadcasts.update, il n'y a pas cette méthode setScheduledStartTime (vous ressemble inventées à la volée). Si vous souhaitez mettre à jour la propriété snippet.scheduledStartTime, vous devez définir cela dans le corps de la demande de votre demande LiveBroadcasts.update.

+0

La question est: "comment mettre à jour une diffusion en direct en utilisant la bibliothèque PHP de YouTube?". Comment appeler la méthode de mise à jour? Comment puis-je transmettre les paramètres? –

+0

Je ne peux pas écrire du code pour vous mate parce que je ne travaille pas sur PHP. Je m'attends à ce que vous sachiez comment utiliser vos outils au lieu d'inventer des méthodes à la volée xD – noogui