Feedly API を Ruby (Gem: Feedlr) で試す
アクセストークン取得
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
参考になる図
メソッド確認
> 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 を使うとこんな感じにとっても素敵にデータを表示してくれます。おすすめ!
導入はGemfileに以下を追記して再度bundle install ~
です。
gem 'awesome_print', require: 'ap'
夢が広がりんぐ
これでアレがつくれる!