2011-07-16 7 views
1

PHPとcURLでClientLoginでYouTube APIを使用しています。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 

私は応答として原子+ xml形式でそのビデオのすべての情報を得ました。

これは正しい応答ですか?

1時間後、この動画は削除されていません。

ClientLogin APIによるビデオ削除の具体例は見つかりませんでした。システムは11月前のClientLoginでimplemetedた

、2010年

は今、私は彼らが、この方法をお勧めしません、というYouTubeのAPIのヘルプで参照してください。 http://code.google.com/apis/youtube/2.0/developers_guide_protocol_clientlogin.html

誰でもこの問題をClientLoginメソッドで解決できますか?

ZendライブラリでClientLoginが正常に動作しています。

YouTube API ClientLoginのZendライブラリを掘り下げて、APIリクエストにstream_socket_clientを使用していることがわかりました。私が得る応答として

$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

私は、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 
関連する問題