No se puede establecer la API de Watermark a través de YouTube usando Google PHP Client Library
-
20-12-2019 - |
Pregunta
Estoy usando la nueva biblioteca de clientes de Google API PHP de GitHub.Aquí está el código:
$client = new Google_Client();
$client->setClientId( 'CLIENTID' );
$client->setClientSecret( 'CLIENTSECRET' );
$client->refreshToken( 'REFRESHTOKEN' );
$youtube = new Google_Service_YouTube( $client );
$channelId = 'UC...';
$imagePath = "./image.jpeg";
$postBody = new Google_Service_YouTube_InvideoBranding();
$postBody->setImageBytes( filesize( $imagePath ) );
$postBody->setTargetChannelId( $channelId );
$imageData = file_get_contents( $imagePath );
$resource = array(
'data' => $imageData,
'mimeType' => 'image/jpeg,image/png,application/octet-stream',
'uploadType' => 'media'
);
$youtube->watermarks->set( $channelId, $postBody, $resource );
pero obtuve la siguiente excepción:
PHP Warning: file_get_contents(/upload/youtube/v3/watermarks/set?channelId=UC...&uploadType=multipart): failed to open stream: No such file or directory in ....../src/Google/IO/Stream.php on line 109
PHP Fatal error: Uncaught exception 'Google_IO_Exception' with message 'HTTP Error: Unable to connect' in ....../src/Google/IO/Stream.php:112
Stack trace:
#0 ....../src/Google/Http/REST.php(46): Google_IO_Stream->makeRequest(Object(Google_Http_Request))
#1 ....../src/Google/Client.php(492): Google_Http_REST::execute(Object(Google_Client), Object(Google_Http_Request))
#2 ....../src/Google/Service/Resource.php(194): Google_Client->execute(Object(Google_Http_Request))
#3 ....../src/Google/Service/YouTube.php(2687): Google_Service_Resource->call('set', Array)
#4 .../watermark.php(48): Google_Service_YouTube_Watermarks_Resource->set('UC...', Object(Google_Service_YouTube_InvideoBranding), Array)
#5 {main}
thrown in ....../src/Google/IO/Stream.php on line 112
Similar a "Set Miniaturas".¿Dónde estoy haciendo mal?
Solución
Intente usar google_http_mediafileupload para cargar el archivo de imagen.
Aquí hay un ejemplo: https:// github.Com / YouTube / API-MUESTRAS / BLOB / MASTER / PHP / Upload_thumbnail.php # L78
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow