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

Vous pouvez utiliser le script feedburner: