我正在使用正式的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
方法,但是...怎么做?
答案 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');
它按预期工作