Vimeo:如何使用php官方客户端为视频添加域白名单?

时间:2019-04-15 08:38:47

标签: php vimeo vimeo-api

我正在使用正式的Vimeo PHP客户端。

我可以上传视频,并将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 :(得分:0)

解决方案发现正在查看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');

它按预期工作