Google Feed API-返回媒体:缩略图

Google Feed API - returning media:thumbnail

本文关键字:略图 媒体 返回 Feed API- Google      更新时间:2023-09-26

我目前正在使用Google Feed API,并试图从RSS Feed("媒体:缩略图")中检索缩略图

RSS提要中的media:缩略图行如下所示:

<media:thumbnail url="http://anyurl.com/thumbnailname.jpg" width="150" height="150"/>

注意:缩略图不属于媒体:组

脚本如下:

google.load("feeds", "1");
function initialize() {
  var feed = new google.feeds.Feed("http://website.com/news/feed/");
  feed.setNumEntries(20);               
  feed.load(function(result) {
    if (!result.error) {
      var container = document.getElementById("feed");
      for (var i = 0; i < result.feed.entries.length; i++) {
        var entry = result.feed.entries[i];
        var div = document.createElement("div");
        div.appendChild(document.createTextNode(entry.title));
        div.appendChild(document.createTextNode(entry.link));
        container.appendChild(div);
      }
    }
  });
}
google.setOnLoadCallback(initialize);
</script>

TITLE和LINK返回得很好。但我在Feed API文档中没有看到任何关于返回媒体的内容:缩略图——或者具体地说是URL。

有人知道我如何使用提要API返回缩略图URL吗?

使用MIXED_FORMAT并使用javascript:搜索media:thumbnail URL

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("feeds", "1");
function initialize() {
    var feed = new google.feeds.Feed('http://channel9.msdn.com/Feeds/RSS');
    feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);
    feed.setNumEntries(25);
    feed.load(function(result) {
    if (!result.error) {
      for (var i = 0; i < result.feed.entries.length; i++) {
        var entry = result.feed.entries[i];
        var mediaEntries = entry.xmlNode.getElementsByTagNameNS('*','thumbnail');
        for (var j = 0; j < mediaEntries.length; j++) {
            var mediaEntry = mediaEntries[j];
            var mediaThumbnailUrl = mediaEntry.attributes.getNamedItem('url').value
            console.log(mediaThumbnailUrl);
        }
      }
    }
  });
}
google.setOnLoadCallback(initialize);
</script> 

尝试将提要格式设置为MIXED_FORMAT

feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);

其应当在CCD_ 6内返回CCD_。


function initialize() {
  var url = "http://www.flickr.com/services/feeds/"
  +"photos_public.gne?tags=nature&format=rss_200";
  var feed = new google.feeds.Feed(url);
  feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);
  feed.setNumEntries(5);               
  feed.load(function(result) {
    if (!result.error) {
    var container = document.getElementById("feed");
      for (var i = 0; i < result.feed.entries.length; i++) {
        var entry = result.feed.entries[i];
        // select the `media:thumbnail` element
        var mediaImage = Array.prototype.slice
        .call(entry.xmlNode.children).filter(function(el, i) {
          return el.nodeName === "media:thumbnail" 
        });
        var thumbnail = new Image;
        // set thumbnail `attributes` with `media:element` `attributes`
        Array.prototype.slice
       .call(mediaImage[0].attributes).forEach(function(key, _) {
              thumbnail[key.name.replace(/[url].*/,"src")] = key.value
        });
        var div = document.createElement("div");       
        div.appendChild(document.createTextNode(entry.title + "'n"));
        div.appendChild(document.createTextNode(entry.link + "'n"));
        div.appendChild(thumbnail);
        container.appendChild(div);                
      }
    }
  });
}
google.setOnLoadCallback(initialize);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load("feeds", "1");
</script>
<div id="feed"></div>