Vimeo API: невозможно удалить, поскольку официальный SDK использует неправильный URL - PullRequest
0 голосов
/ 04 октября 2019

Среда

  • Debian 9
  • PHP 7.2
  • Версия пакета Vimeo в composer.json: "vimeo / vimeo-api": "^ 3.0.2"
    • разрешено как версия 3.0.2

Цель

При наличии URL-адреса содержимого vimeo удалите видео. Например: имея видео https://vimeo.com/12345678 Я хочу удалить видео с идентификатором 12345678

Что я делаю

1. Например, клиент php sdk api

$client = new Vimeo(
   config('dyamer.vimeo_client_id'),
   config('dyamer.vimeo_client_secret'),
   config('dyamer.vimeo_access_token')
);

Эти конфиги верны, я использую для загрузки видео и все работы

2. Вызовите конечную точку API api

$uri="https://vimeo.com/12345678";
$response = $client->request($uri, [], 'DELETE');

Исключение

Последняя строка кода вызывает абсурдное исключение:

[Could not resolve host: api.vimeo.comhttps] 
in /...project_folder.../vendor/vimeo/vimeo-api/src/Vimeo/Vimeo.php:527
Stack trace:
#0 /...project_folder.../vendor/vimeo/vimeo-api/src/Vimeo/Vimeo.php(149): Vimeo\Vimeo->_request('https://api.vim...', Array)

Последнийстрока буквально показана с усеченным URL, это не моя ошибка при копировании / вставке, но я думаю это демонстрирует, что что-то не так внутри Vimeo SDK

Вопросы

  • Это происходит только со мной?
  • Я что-то не так делаю?
  • Как я могу обойти эту проблему?

Примечания

Я уже открыл проблему на Gihhub , без какого-либо официального ответа от разработчиков SDK.

1 Ответ

0 голосов
/ 04 октября 2019

Я успешно отследил ошибку до ошибки моего

Это инкриминируемый фрагмент на самом деле здесь на github


            case 'DELETE':
                if ($json_body && !empty($params)) {
                    $headers['Content-Type'] = 'application/json';
                    $body = json_encode($params);
                } else {
                    $body = http_build_query($params, '', '&');
                }
                $curl_url = self::ROOT_ENDPOINT . $url;
                $curl_opts = array(
                    CURLOPT_POST => true,
                    CURLOPT_CUSTOMREQUEST => $method,
                    CURLOPT_POSTFIELDS => $body
                );
                break;

Дампинг$curl_url Я вижу

https://api.vimeo.comhttps://vimeo.com/12345678

Это явно неправильно.

Из официальный API-документ о УДАЛИТЬ

ЗАПРОС

УДАЛИТЬ https://api.vimeo.com/videos/{video_id}

Итак, ошибка полностью мое

Неправильно

$uri="https://vimeo.com/12345678";
$response = $client->request($uri, [], 'DELETE');

Правильно

$uri="videos/12345678";
$response = $client->request($uri, [], 'DELETE');

Извините, персонал Vimeo, это было моя ошибка, а не ваша.

...