Feedly API を Ruby (Gem: Feedlr) で試す

f:id:syonx:20150507041413p:plain

アクセストークン取得

Gemの入手

feedlr を使います。

$ bundle init
$ echo 'gem "feedlr"' >> Gemfile
$ bundle install --path vendor/bundle

irbで試す

こちらの記事を参考に、タグ版を書きました。多謝。

iPhone App の Reeder からはタグを扱えないようなので、Feedly Web版からタグ付けして試した。

$ bundle exec irb

require 'feedlr'
client = Feedlr::Client.new(oauth_access_token: '取得したアクセストークン')

# ユーザープロフィールを取得する
profile = client.user_profile

# タグの一覧を取得する
client.user_tags

# タグ一覧から1つを取得([0]はglobal.saved)
tag_id = client.user_tags[1].id

# 指定したタグのエントリーIDリスト(デフォルト20件・Max 10,000)
entry_ids = client.stream_entries_ids(tag_id)['ids']

# エントリーIDリストを使って指定エントリーを取得する
entries = client.user_entries entry_ids

# 取得したエントリーの先頭記事を既読にする
client.mark_article_as_read entries.first.id

# 購読フィードのIDリストを一覧表示
client.user_subscriptions.map{|m| puts m.id};0

# フィードIDにホッテントリを指定
feed_id = "feed/http://b.hatena.ne.jp/hotentry.rss"

# 指定フィードのエントリーを取得する(件数指定例)
hotentries = client.stream_entries_contents(feed_id, :count => 3).items

参考になる図

f:id:syonx:20150507034541p:plain

The feedly Cloud API

メソッド確認

> Feedlr::Client.new.public_methods.sort
=> [:!, :!=, :!~, :<=>, :==, :===, :=~, :__id__, :__send__, :add_entry, :add_subscription, :add_to_evernote, :add_to_onenote, :add_topic, :change_category_label, :change_tag_label, :class, :clone, :define_singleton_method, :delete, :delete_category, :delete_subscription, :delete_tag, :delete_tags, :delete_topic, :display, :dup, :enum_for, :eql?, :equal?, :evernote_notebooks, :extend, :facebook_suggestions, :feed, :feeds, :freeze, :frozen?, :gem, :get, :hash, :import_opml, :inspect, :instance_eval, :instance_exec, :instance_of?, :instance_variable_defined?, :instance_variable_get, :instance_variable_set, :instance_variables, :is_a?, :itself, :kind_of?, :lastest_tagged_entries, :logger, :mark_article_as_read, :mark_article_as_unread, :mark_articles_as_read, :mark_articles_as_unread, :mark_categories_as_read, :mark_category_as_read, :mark_feed_as_read, :mark_feeds_as_read, :method, :methods, :nil?, :oauth_access_token, :object_id, :post, :preferences, :private_methods, :protected_methods, :psych_to_yaml, :public_method, :public_methods, :public_send, :put, :remove_instance_variable, :respond_to?, :sandbox, :search_feeds, :search_stream, :send, :shorten_entry, :singleton_class, :singleton_method, :singleton_methods, :stream_entries_contents, :stream_entries_ids, :stream_most_engaging, :sync_read_counts, :tag_entries, :tag_entry, :taint, :tainted?, :tap, :to_enum, :to_json, :to_s, :to_yaml, :to_yaml_properties, :trust, :twitter_suggestions, :undo_mark_categories_as_read, :undo_mark_category_as_read, :undo_mark_feed_as_read, :undo_mark_feeds_as_read, :unlink_evernote, :unlink_facebook, :unlink_microsoft, :unlink_twitter, :untag_entries, :untag_entry, :untaint, :untrust, :untrusted?, :update_preferences, :update_profile, :update_subscription, :update_topic, :user_categories, :user_entries, :user_entry, :user_opml, :user_profile, :user_subscriptions, :user_tags, :user_topics, :user_unread_counts]

Awesome Print便利!

irb で試していると、戻り値のテキスト情報が多くて大変なことになります。フィードの情報や記事の内容まで取得できるためですね。そこで、Gem の Awesome Print を使うとこんな感じにとっても素敵にデータを表示してくれます。おすすめ!

f:id:syonx:20150507161301p:plain

導入はGemfileに以下を追記して再度bundle install ~です。

gem 'awesome_print', require: 'ap'

夢が広がりんぐ

これでアレがつくれる!


Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例

アフィリエイターのための Web APIプログラミング入門

アフィリエイターのための Web APIプログラミング入門