web-dev-qa-db-ja.com

AJAXでRSSフィードをロードする:Google Feed APIの代替?

私はGoogle Feed APIを使用してRSSフィードをロードしていますが、GoogleがAPIをシャットダウンしたようです。たとえば、ニューヨークタイムズのRSSフィードを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に読み込もうとすると、次の応答が返されます。

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

実行可能な代替案はありますか?

18
Joe Mornin

Yahooの YQL API を使用:

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

URLにcallbackパラメータを追加することで、JSONPフィードをリクエストできます

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
Tony

非推奨

Myplugin$。jQRSS 使用 Google Feed あなたの正確な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
SpYk3HH

YQLを使用するためのTonyのソリューションへの1つの追加-応答を適切に解析するには、 コールバック値を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'
2
Dave B

スクリプトフィードバーナーを使用できます。

<script src = "http://feeds.feedburner.com/feeduri?format=sigpro&nItems=10" type = "text/javascript"> </ script>

すべての情報:

https://support.google.com/feedburner/answer/78991?hl=ja

1
jmacuna

PHPを使用して、表示するRSSフィードのコピーを取得し、クライアント側のJavaScriptを使用して結果を表示できます。主な利点は、毎日のリクエスト制限を受けないことですほとんどの無料のRSS APIサービスが持っている方法、または信頼性の問題。

http://www.javascriptkit.com/dhtmltutors/ajaxticker/index.shtml

1
coco puffs