Chargement D'un flux RSS avec AJAX: des solutions de rechange à L'API Google Feed?
j'ai utilisé L'API Google Feed pour charger les flux RSS, mais il semble que Google a désactivé l'API. Par exemple, quand j'essaie de charger le flux RSS du New York Times à 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
, je reçois cette réponse:
{"responseData": null, "responseDetails": "This API is no longer available.", "responseStatus": 403}
<!-Y a-t-il des solutions de rechange viables?
18
demandé sur
Joe Mornin
2015-12-02 21:02:31
5 réponses
utilisez Yahoo's API YQL:
select * from xml where url = 'https://news.ycombinator.com/rss'
vous pouvez demander un flux JSONP en ajoutant un callback
paramètre de l'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
27
répondu
Tony
2017-01-20 16:39:32
Deprecated
Monplugin,$.jQRSSGoogle Feed
et semble fonctionner très bien, étant donné votre lien RSS:
var rss = 'http://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml';
$.jQRSS(rss, { count: 8 }, function (feed, entries) {
console.log([feed, entries]);
$.each(entries, function(i) {
if (this['content']) {
var fieldset = $('<fieldset/>', { title: this.contentSnippet }).appendTo('body'),
legend = $('<legend/>').appendTo(fieldset),
$link = $('<a />', { href: this.link, html: this.title, target: '_blank' }).appendTo(legend),
$date = $('<h5 />', { html: this.publishedDate }).appendTo(fieldset),
$content = $('<div />', { html: this.content }).appendTo(fieldset);
$content.find('br').remove();
}
});
});
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>
3
répondu
SpYk3HH
2017-02-04 22:20:02
un ajout à la solution de Tony pour utiliser YQL-j'avais besoin de changez la valeur de rappel en JSON_CALLBACK analyser la réponse correcte:
'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'
2
répondu
Dave B
2017-05-23 12:17:48