LoginSignup
7
8

More than 5 years have passed since last update.

Google Feed API代替のAPI&ライブラリ作ってみた

Last updated at Posted at 2015-12-07

Google Feed API が使えなくなって困っている人が多いので、代替のライブラリを作りました!

Access-Control-Allow-Originのヘッダを設定していないサーバー、クライアント側で処理するのに大きすぎるフィード等があるため、RSSフィードを直接ブラウザで読み込むのが不可能な場合があるので、バックエンドも用意しました。

レスポンスは、デフォルトでGoogleのAPIより純RSSに近い形式ですが、Google Feed API使っていた人のために、GoogleのAPIのレスポンスっぽい物にするヘルパー関数も用意しました。

アカウント登録とAPIキー取得

まずSekando Web Toolkitでアカウントを作ってください。ログインすれば、ホストネームの登録が可能になります。「Hostname」の画面からウェブサイトのホストネームを登録してください。Sekando Web Toolkitは、開発環境で無料で使うことができます。プロダクションで使う場合は月額1080円です。

Screen Shot 2017-01-27 at 6.07.25.png

ホストネームの登録を完了すると、APIキーを取得できます。

Screen Shot 2017-01-27 at 6.07.23.png

フィードを読み込む

<script src="https://static.sekandocdn.net/static/feednami/feednami-client-v1.1.js"></script>
<script>
feednami.setPublicApiKey('3f698f4f37395ab3f1764efd691260209b98f5bd618fa44fa8db198ec0d398ab')
feednami.load('http://devblog.ricky.me/rss.xml')
  .then(feed => {
    for(const entry of feed.entries){
      console.log(entry.title)
    }
  })
</script>

Google APIを使っていた人のために

feednami.loadGoogleFormatはできる限りGoogle APIに近いレスポンスを返す.例えば、記事のcontent<content><summary><description>、いずれか一つの値になる。

<script>
  var url = 'http://devblog.ricky.me/rss.xml'
  feednami.loadGoogleFormat(url,function(result){
    if(result.error){
      console.log(result.error)
    }
    else{
      var entries = result.feed.entries
      for(var i = 0; i < entries.length; i++){
        var entry = entries[i]
        console.log(entry.title)
        console.log(entry.contentSnippet) 
        // the first 120 characters of the entry
      }
    }
  })
</script>

Website:https://feednami.com
中の人のTwitter:@richardkazuo

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8