ElixierでTwitterを検索してみました。あまりにも簡単だったのでメモっておきます。extwitterというTwitter client libraryを使います。extwitter公式サイト
まずプロジェクトを作成します。
mix new twittertest
次にapplication environmentを利用して初期設定を行います。すなわちmix newで作成されたconfig/config.exsファイルにTwitter APIのキーを設定します。以下の項目をファイルの末尾に追加します。
#
config :extwitter, :oauth, [
consumer_key: "xxxxx",
consumer_secret: "xxxxx",
access_token: "xxxxx",
access_token_secret: "xxxxx"
]
#
次にmix.exsを編集して、必要なライブラリを設定します。
#
defp deps do
[
{:oauther, "~> 1.1"},
{:extwitter, "~> 0.8"}
]
end
#
extwitterはTwitterの REST API.をcallする時の認証にoautherを利用しています。公式サイトでは以下のような修正も必要だとありますが、多分これはもう不要です。最近のelixirはdepsにあるアプリを自動的にスタートしてくれるみたいです。実際にこれ無しで動作しましたので。
def application do
[applications: [:logger, :extwitter]]
end
ライブラリをインストールして、シェルを立ち上げます。
mix deps.get
iex -S mix
シェルが立ち上がったら、ExTwitter.search()で好きな単語で検索してみましょう。Elixirに関心あるあなたは数学者にも関心があるでしょう。以下のように検索してみます。
iex(1)> ExTwitter.search("望月新一")
[
%ExTwitter.Model.Tweet{
retweeted: false,
quoted_status: nil,
...
},
---
text: "友達に教えてもらった、京大の望月新一氏(ABC予想を証明した数学のめっちゃすごい人)のブログを読んでる。\n読んでると脳みそ溶けそうになるくらいわけわからなくて面白いです。",
scopes: nil,
entities: %{hashtags: [], symbols: [], urls: [], user_mentions: []}
},
%ExTwitter.Model.Tweet{
プログラムを書きませんでしたが、簡単にTwitterの検索を行えました。前に「Meteor and Reactによるリアクティブシステム「ラーメン野郎を追いかけろ! @ Twitter」を作ってみた - Qiita」を書いたときにMeteor(node)でTwitterのStream APIを使いましたが、extwitterでも使えるようです。そのうち試してみたいと思います。