gpt4 book ai didi

api - 为直播事件设置 contentDetails 时出错 - Youtube Live API v3

转载 作者:行者123 更新时间:2023-12-03 05:27:55 24 4
gpt4 key购买 nike

一段时间以来,我一直在使用 php 成功创建 yt 直播事件。由于我尝试禁用嵌入,因此收到以下错误:

["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'],
));

最佳答案

在这一行:

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

它应该是:
$broadcastsResponse = $youtube->liveBroadcasts->insert('snippet,status,contentDetails', $broadcastInsert, array());

您正在设置 contentDetails 的嵌入属性,但未将其包含在请求中。
如果您阅读了错误,那就是它所提示的。

关于api - 为直播事件设置 contentDetails 时出错 - Youtube Live API v3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21651127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com