代码之家  ›  专栏  ›  技术社区  ›  realtebo

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

  •  0
  • realtebo  · 技术社区  · 5 年前

    我正在使用官方的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
            )
    
    )
    

    我想我必须把 方法在我的请求中,但是…怎样?

    0 回复  |  直到 5 年前
        1
  •  0
  •   realtebo    5 年前

    通过查看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');
    

    而且工作如期