Vimeo: как использовать официальный клиент php для добавления белого списка доменов для видео? - PullRequest
0 голосов
/ 15 апреля 2019

Я использую официальный PHP-клиент Vimeo.

Я могу загрузить видео и установить privacy.embed на whitelist.

Тогда доктор скажет мне:

Чтобы добавить домен в белый список, отправьте запрос PUT на /videos/{video_id}/privacy/domains/{domain}.

Я пытался

$privacy_uri = $uri . "/privacy/domains/testdomain.tld";
$domain_add_response = $client->request($privacy_uri);

, где - $uri - это /vimeo/<video_id> - $client родился от new Vimeo(CLIENT_ID, CLIENT_SECRET, VIMEO_TOKEN);

Проблема

Печать $domain_add_response Я получаю 405 ошибку, возможно, из-за Allow (см. Следующий дамп ответа)

Array
(
    [body] => 
    [status] => 405
    [headers] => Array
        (
            [Server] => nginx
            [Content-Type] => application/json
            [Allow] => PUT,DELETE,OPTIONS
            [X-Vimeo-DC] => ge
            [Accept-Ranges] => bytes
            [Via] => 1.1 varnish
            [Content-Length] => 0
            [Date] => Mon, 15 Apr 2019 08:30:47 GMT
            [Connection] => keep-alive
            [X-Served-By] => cache-bwi5125-BWI, cache-mxp19820-MXP
            [X-Cache] => MISS, MISS
            [X-Cache-Hits] => 0, 0
            [X-Timer] => S1555317047.232635,VS0,VE148
            [Vary] => Accept-Encoding
        )

)

Полагаю, я должен установить метод PUT в своем запросе, но ... как?

1 Ответ

0 голосов
/ 15 апреля 2019

Решение найдено, глядя на исходный код API: https://github.com/vimeo/vimeo.php/blob/master/src/Vimeo/Vimeo.php#L88

, где подпись request равна

public function request($url, $params = array(), $method = 'GET', $json_body = true, array $headers = array()): array

Я понимаю, что могу решить проблему, простопропустив пустой массив $params и указав PUT в качестве запроса $method

Я изменил эту строку

$domain_add_response = $client->request($privacy_uri);

В эту форму

$domain_add_response = $client->request($privacy_uri, [], 'PUT');

И этоработает как положено

...