我正在尝试使用YouTube API v2.0 - Retrieving Live Events提取最新的YouTube直播活动Feed 但我的脚本似乎不起作用。这是我的代码。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
</head>
<body>
<div id="static_video"></div>
<script>
$(document).ready(function() {
$(function () {
$.getJSON( "https://gdata.youtube.com/feeds/api/users/ElektraRecords/live/events?v=2&inline=true&alt=json-in-script&status=pending&orderby=published$callback=?",
function (data) {
$.each(data.feed.content.entry, function(i,entry) {
var videoid = 'http://www.youtube.com/embed/' + entry.yt$videoid.$t;
var title = '<h1>' + entry.media$title.$t + '</h1>';
var video = +title+ "<iframe width='420' height='315' src='"+videoid+ "' frameborder='0' allowfullscreen></iframe>";
$('#static_video').html(video);
});
});
});
});
</script>
</body>
</html>
答案 0 :(得分:0)
您缺少依赖脚本。显然,您需要在文档的标题中包含API的gdata部分。请参阅浏览器的调试器以及我在JSFiddle上添加的脚本:http://jsfiddle.net/2NDrC/ - 您可能希望嵌入的API位于:https://code.google.com/p/google-api-javascript-client/
如果您查看使用javascript检索的URL,您会看到它是对gdata api中方法的方法调用:
网址:https://gdata.youtube.com/feeds/api/users/ElektraRecords/live/events?v=2&inline=true&alt=json-in-script&status=pending&orderby=published$callback=?
返回
gdata.io.handleScriptLoaded({"version":"1.0","encoding":"UTF-8","feed":{"xmlns$app":"http://www.w3...
并以javascript身份执行。因此,必须提供一个名为gdata.io.handleScriptLoaded的方法才能使执行成功。
解释如何伪造gdata.io.handledScriptLoaded方法来提取数据的解决方法如下所示:https://groups.google.com/forum/?fromgroups=#!topic/jquery-en/83Kpr9oSxFM