С использованием Vimeo PHP API с учетной записью Pro Vimeo.
У меня есть форма PHP с вводом файла, пользователь загружает файл через форму, и я хочу, чтобы он загружался в нашу учетную запись Vimeo. Глядя на документы у меня есть следующее:
// via https://developer.vimeo.com/apps/XXXXXX#authentication
// access_token has been generated with "public private purchased create edit delete interact upload" scope
$lib = new \Vimeo\Vimeo($config['client_id'], $config['client_secret'], $config['access_token']);
// send to the API library
$uri = $lib->upload($_FILES['file']['tmp_name']);
// get the info about it so we can find the link
$video_data = $lib->request($uri);
// pull the link out of successful data responses.
$link = '';
if($video_data['status'] == 200)
{
$link = $video_data['body']['link'];
}
Это бросает Vimeo\Exceptions\VimeoUploadException [ 0 ]: Unable to get an upload ticket.
при звонке $this->perform_upload($file_path, $ticket);
,
private function perform_upload($file_path, $ticket)
{
if ($ticket['status'] != 201) {
throw new VimeoUploadException('Unable to get an upload ticket.');
}
Ответ $ ticket пуст:
Array ( [body] => [status] => 0 [headers] => Array ( ) )
а также $curl_info
значение:
Array
(
[url] => https://api.vimeo.com/me/videos
[content_type] =>
[http_code] => 0
[header_size] => 0
[request_size] => 0
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.094
[namelookup_time] => 0
[connect_time] => 0.094
[pretransfer_time] => 0
[size_upload] => 0
[size_download] => 0
[speed_download] => 0
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0
[redirect_time] => 0
[certinfo] => Array
(
)
[primary_ip] => xxxxxxxxxxxxx
[primary_port] => xxx
[local_ip] => xxxxxxxxx
[local_port] => xxxxxxx
[redirect_url] =>
)
Что я делаю неправильно?
Вам необходимо отправить запрос на доступ к загрузке на странице сведений о приложении и дождаться подтверждения от Vimeo.
Других решений пока нет …