我在PHP和cURL中使用带有ClientLogin的YouTube API。
我发送了这样的请求:
DELETE /feeds/api/users/USERNAME/uploads/VIDEO_ID HTTP/1.1
Host: gdata.youtube.com
Content-Type: application/atom+xml
Authorization: GoogleLogin auth="AUTHORIZATION_TOKEN"
GData-Version: 2
X-GData-Key: key=DEVELOPER_KEY
我以atom + xml格式获取该视频的所有信息作为回复。
这是正确的答案吗?
1.5小时后,我看不到此视频被删除。
未找到使用ClientLogin API进行视频删除的具体示例。
该系统于2010年11月之前与ClientLogin一起实施。
现在,我在YouTube API帮助中看到,他们不建议使用此方法。 http://code.google.com/apis/youtube/2.0/developers_guide_protocol_clientlogin.html
有人可以通过ClientLogin方法帮助解决这个问题吗?
使用ClientLogin的Zend库工作正常。
我在Zend库中挖掘了YouTube API ClientLogin,发现它使用stream_socket_client进行API请求。
我在这里提取了核心代码:
$context = stream_context_create();
$socket = stream_socket_client('tcp://gdata.youtube.com:80', $errno, $errstr, 10, 4, $context);
stream_set_timeout($socket, 10); // To set a timeout for reading/writing data over the socket
$request = "DELETE /feeds/users/".$_SESSION["youTubeUser"]."/uploads/".$videoId." HTTP/1.1".PHP_EOL."
Host: gdata.youtube.com".PHP_EOL."
Connection: close".PHP_EOL."
X-GData-Key: key=".DEVELOPER_KEY.PHP_EOL."
Authorization: GoogleLogin auth=".$authKey.PHP_EOL."
Accept-encoding: identity".PHP_EOL."
Content-Type: application/atom+xml".PHP_EOL."
Content-Length: 0".PHP_EOL.PHP_EOL;
fwrite($socket, $request);
while (($line = fgets($socket)) !== false) {
$gotStatus = $gotStatus || (strpos($line, 'HTTP') !== false);
if ($gotStatus) {
$rspns .= $line;
if (rtrim($line) === '') break;
}
}
echo $errno." => ".$errstr."<br />Response: ";var_dump($rspns); exit;
作为回应我得到了:
HTTP/1.1 405 Method Not Allowed Content-Type: text/html; charset=UTF-8 Content-Length: 11858 Date: Fri, 22 Jul 2011 10:59:05 GMT Server: GFE/2.0
现在,任何人都可以抓到任何东西......?
答案 0 :(得分:0)
我刚尝试通过发送使用ClientLogin验证的DELETE请求来删除YouTube视频,但它运行正常。
您是否在请求正文中发送了任何内容? DELETE调用不带有效负载。 供您参考,以下是我的要求和回复:
DELETE https://gdata.youtube.com/feeds/api/users/USERNAME/uploads/VIDEO_ID HTTP/1.1
Content-Type: application/atom+xml; charset=UTF-8
X-GData-Key: key=DEVELOPER-KEY
Authorization: GoogleLogin auth=DQAA...
GData-Version: 2.0
Host: gdata.youtube.com
HTTP/1.1 200 OK
GData-Version: 2.0
Date: Mon, 08 Aug 2011 18:23:52 GMT
Expires: Mon, 08 Aug 2011 18:23:52 GMT
Cache-Control: private, max-age=0
Content-Length: 0
Server: GSE
Content-Type: text/html