如何使用XML API进行POST?

时间:2013-08-23 00:41:09

标签: php xml youtube-api

我们在此处看到:https://developers.google.com/youtube/2.0/developers_guide_protocol_comments#Adding_a_comment

我需要使用XML API进行请求。

POST /feeds/api/videos/VIDEO_ID/comments HTTP/1.1
Host: gdata.youtube.com
Content-Type: application/atom+xml
Content-Length: CONTENT_LENGTH
Authorization: Bearer ACCESS_TOKEN
GData-Version: 2
X-GData-Key: key=DEVELOPER_KEY

<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:yt="http://gdata.youtube.com/schemas/2007">
  <content>This is a crazy video.</content>
</entry>

我应该使用什么?

2 个答案:

答案 0 :(得分:1)

您可以使用cURL执行此操作。

<?php
$data = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<entry xmlns="http://www.w3.org/2005/Atom"
    xmlns:yt="http://gdata.youtube.com/schemas/2007">
    <content>This is a crazy video.</content>
</entry>
XML;

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'gdata.youtube.com/feeds/api/videos/VIDEO_ID/comments');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER,
    array('Content-Type: application/atom+xml',
    'Authorization: Bearer ACCESS_TOKEN',
    'GData-Version: 2',
    'X-GData-Key: key=DEVELOPER_KEY'));
$re = curl_exec($ch);
curl_close($ch);
?>

答案 1 :(得分:1)

您可能会发现使用其中一个客户端库而不是手动执行POST最容易,因为它可以为您处理标头生成,身份验证和令牌,而不会有太多麻烦。这里有一个客户端库列表:

https://developers.google.com/youtube/code

例如,要使用Python客户端发表评论帖,它看起来就像这样(假设您已完成身份验证步骤,客户端非常简单):

my_comment = 'what a boring test video'
video_id = '9g6buYJTt_g'
video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id)
yt_service.AddComment(comment_text=my_comment, video_entry=video_entry)

其他语言的客户端遵循相同的结构。