Загрузка видео на Youtube с использованием Youtube Data API V3 и клиента API Google PHP – получение сообщения 401 (несанPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Загрузка видео на Youtube с использованием Youtube Data API V3 и клиента API Google PHP – получение сообщения 401 (несан

Сообщение Anonymous »

Мне нужно реализовать способ загрузки видео с нашего сайта на YouTube. Я уже зарегистрировал приложение в Google Cloud и получил весь необходимый идентификатор клиента, секретный код клиента, ключ браузера, URI перенаправления и ключ сервера. Я также включил API данных Youtube V3, API Google+, API Freebase и API YouTube Analytics, как предлагалось на различных сайтах.

Вот мой код ниже:

Код: Выделить всё

    require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_YouTubeService.php';

$client = new Google_Client();
$client->setApplicationName('Application Name');
$client->setClientId('CLIENT_ID');
$client->setClientSecret('CLIENT_SECRET_CODE');
$client->setRedirectUri('REDIRECT_URI');
$client->setDeveloperKey('DEVELOPER_KEY');

$youtube = new Google_YouTubeService($client);
if (isset($_GET['code'])) {
$client->authenticate();
$_SESSION['token'] = $client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}

if (isset($_SESSION['token'])){
$client->setAccessToken($_SESSION['token']);
}

if ($client->getAccessToken()){
$path_to_video_to_upload = $_FILES["video"]["tmp_name"];
$mime_type = $_FILES["video"]["type"];
$snippet = new Google_VideoSnippet();
$snippet->setTitle('Highlights');
$snippet->setDescription('Description Of Video');
$snippet->setTags(array('training', 'Soccer'));
$snippet->setCategoryId(17);

$status = new Google_VideoStatus();
$status->privacyStatus = "private";

$video = new Google_Video();
$video->setSnippet($snippet);
$video->setStatus($status);

try {
$obj = $youtube->videos->insert("status,snippet", $video,
array("data"=>file_get_contents($path_to_video_to_upload),
"mimeType" => $mime_type));
} catch(Google_ServiceException $e) {
print "Caught Google service Exception ".$e->getCode(). " message is ".$e->getMessage()."
";
}

$_SESSION['token'] = $client->getAccessToken();
}

else{
$authUrl = $client->createAuthUrl();
print "[url=$authUrl]Connect Me![/url]";
}
Я ссылался на эти коды из:
Загрузка видео на Youtube с помощью Youtube API V3 и PHP

и

http://www.dreu.info/blog/uploading-a-v ... -3-in-php/

Впервые Я запустил этот код, он заставил меня подключиться к учетной записи YouTube (с экраном с просьбой разрешить Google управлять моей учетной записью YT), а затем со второй попытки я получил ответ на сообщение 401.

Вот ответ от сервера YouTube

Поймано сообщение об исключении 401 службы Google: ошибка при вызове POST https://www.googleapis.com/upload/youtu ... QkIDptsjXg: (401) Несанкционировано

Я пытался найти различные решения, но, похоже, не нашел.
Любая помощь приветствуется, спасибо!

Последующий вопрос: является ли ключ разработчика ключом браузера или ключом сервера? Я не понимаю, что мне следует использовать в своем коде. Я пробовал переключать клавиши, тоже не помогло.

Подробнее здесь: https://stackoverflow.com/questions/201 ... client-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»