我正在尝试获取用户的订阅列表。你一次只能获得50个,所以我想创建一个批处理来一次完成所有操作。
我正在使用Jquery和ajax发送这样的POST请求:
var query = "<feed xmlns='http://www.w3.org/2005/Atom'";
query += "xmlns:media='http://search.yahoo.com/mrss/'";
query += "xmlns:batch='http://schemas.google.com/gdata/batch'"
query += "xmlns:yt='http://gdata.youtube.com/schemas/2007'>";
for(var i = 0; i < loop; ++i)
{
query += '<entry>';
query += '<id>http://gdata.youtube.com/feeds/api/users/' + youtube_username + '/subscriptions?max-results=50&start-index=' + ((i * 50) + 1) + '&alt=json</id>';
query += "<batch:operation type='query'/>";
query += '</entry>';
}
query += '</feed>';
$.ajax({
type: 'POST',
url: 'http://gdata.youtube.com/feeds/api/users/batch?v=2',
data: query,
contentType:"application/atom+xml",
dataType:"xml",
success: function(data){
alert(data);
}
});
当我执行此请求时,我收到错误400(错误的网址请求)。然后我尝试使用此URL输入条目:
query += '<id>http://gdata.youtube.com/feeds/api/users/' + youtube_username + '/subscriptions/</id>';
但我收到了这个错误:
元素类型“Feed”必须后跟属性规范“&gt;”或“/&gt;”。
谢谢你,祝你有愉快的一天, 凯文
答案 0 :(得分:1)
“批处理请求支持查询(GET)操作的订阅源条目,但不支持整个订阅源。例如,如果您要发送播放列表的批处理请求,则可以包含一个或多个条目,以检索有关各个播放列表条目的信息但是,批处理请求无法检索包含这些条目的播放列表供稿。“,如https://developers.google.com/youtube/2.0/developers_guide_protocol_batch_processing中所述
我更喜欢用这种方式解释:
假设订阅是您要批量处理的内容。你打开 http://gdata.youtube.com/feeds/api/users/google/subscriptions?v=2&alt=json&prettyprint=True
curl -vLk -d "<feed xmlns='http://www.w3.org/2005/Atom' xmlns:media='http://search.yahoo.com/mrss/' xmlns:batch='http://schemas.google.com/gdata/batch' xmlns:yt='http://gdata.youtube.com/schemas/2007'><batch:operation type='query'/><entry><id>http://gdata.youtube.com/feeds/api/users/google/subscriptions/X7RMFNKroIVT2j3zlJcZK7VKfC7MoH_jycANXotcvEI?v=2</id></entry></feed>" -X POST "http://gdata.youtube.com/feeds/api/users/google/subscriptions/batch?v=2"
强> 另一个例子是视频,例如:
curl -vLk -d“http://www.w3.org/2005/Atom'xmlns:media ='http://search.yahoo.com/mrss/'xmlns:batch ='http://schemas.google.com/gdata/batch'xmlns: yt ='http://gdata.youtube.com/schemas/2007'&gt; https://gdata.youtube.com/feeds/api/videos/EWKcFuluXpo“-X POST”https://gdata.youtube.com/feeds/api/videos/batch?v=2“
用户/频道的信息示例,例如:
curl -vLk -d“http://www.w3.org/2005/Atom'xmlns:media ='http://search.yahoo.com/mrss/'xmlns:batch ='http://schemas.google.com/gdata/batch'xmlns: yt ='http://gdata.youtube.com/schemas/2007'&gt; http://gdata.youtube.com/feeds/api/users/GoogleDevelopers“-X POST”http://gdata.youtube.com/feeds/api/users/batch?v=2“
所以,我不认为通过批处理可以查询订阅列表,而不知道首先是条目ID。