2015-12-02 50 views
18

我一直在使用Google Feed API加載RSS訂閱源,但它看起來像Google關閉了API。例如,當我嘗試加載在http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&q=http%3A%2F%2Frss.nytimes.com%2Fservices%2Fxml%2Frss%2Fnyt%2FHomePage.xml紐約時報RSS提要,我得到這樣的迴應:使用AJAX加載RSS提要:Google Feed API的替代品嗎?

{"responseData": null, "responseDetails": "This API is no longer available.", "responseStatus": 403} 

有沒有可行的替代方案?

回答

27

使用雅虎的YQL API

select * from xml where url = 'https://news.ycombinator.com/rss' 

您可以通過添加一個callback參數的URL

https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%20%3D%20'https%3A%2F%2Fnews.ycombinator.com%2Frss'&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=mycallback 
+0

我討厭問,但你能提供一個小提琴來展示它的工作原理嗎?我真的很感激,我不確定你的解決方案是如何工作的,或者顯示的內容以及HTML在頁面上的顯示方式。 – Aaron

+2

@Aaron這裏有一個基本的例子可以幫助你:https://gist.github.com/anonymous/7f79807bc6abb00024df – Tony

+0

太棒了!這真的有幫助! – Aaron

2

一個除了託尼的使用YQL的解決方案 - 我需要change the callback value to JSON_CALLBACK解析正確響應:

'https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%20%3D%20\'' + encodeURIComponent(url) + '\'&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=JSON_CALLBACK' 
3

棄用

Myplugin$.jQRSS使用Google Feed,似乎工作得很好,給你確切的RSS鏈接:

var rss = 'http://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml'; 
 
$.jQRSS(rss, { count: 8 }, function (feed, entries) { 
 
\t console.log([feed, entries]); 
 
\t $.each(entries, function(i) { 
 
\t \t if (this['content']) { 
 
\t \t \t var fieldset = $('<fieldset/>', { title: this.contentSnippet }).appendTo('body'), 
 
\t \t \t \t legend = $('<legend/>').appendTo(fieldset), 
 
\t \t \t \t $link = $('<a />', { href: this.link, html: this.title, target: '_blank' }).appendTo(legend), 
 
\t \t \t \t $date = $('<h5 />', { html: this.publishedDate }).appendTo(fieldset), 
 
\t \t \t \t $content = $('<div />', { html: this.content }).appendTo(fieldset); 
 
\t \t \t $content.find('br').remove(); 
 
\t \t } 
 
\t }); 
 
});
fieldset > h5 { float: right; margin-top: 0; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<script src="http://rawgit.com/JDMcKinstry/jQRSS/master/jQRSS.js"></script>

+0

這很奇怪。它也適用於我,但API仍然正式棄用:https://developers.google.com/feed/ –

+0

請不要客觀回滾良好的編輯。你不擁有你的帖子,社區可以,我們都可以自由編輯和改進它們。如果您對此不滿意,則無法發佈到堆棧溢出。 – meagar

+1

這不起作用,API已被棄用和停用。 – Angelo