http://fscoward.hateblo.jp/entry/2013/12/28/032821
の焼き直し
下準備
twitter4j
dependencies に [org.twitter4j/twitter4j-core "3.0.5"]
を追加します。
project.clj
(defproject tweet-anime-clj "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.6.0"]
[org.twitter4j/twitter4j-core "3.0.5"]]
:main tweet-anime-clj.core)
twitter4j.properties
ともかく twitter の api を使えるように consumerkey とか取得しないと話になりません。
twitter appで取得しましょう。
取得した key は twitter4j.properties にペタッと貼り付け。
twitter4j.properties
debug=true
oauth.consumerKey=xxxxxxxxxxxxxxxxxxx
oauth.consumerSecret=xxxxxxxxxxxxxxxx
oauth.accessToken=xxxxxxxxxxxxxxxxxxx
oauth.accessTokenSecret=xxxxxxxxxxxxx
配置
ソースコード
core.clj
(ns tweet-anime-clj.core
(:import [twitter4j TwitterFactory Query TwitterException]))
;; Twitter からつぶやきを取得
(defn getTweet []
(try
(let [twitter (.getInstance (TwitterFactory.))
userTimeline (.getUserTimeline twitter)]
(->>
userTimeline
(map #(.getText %))
(map println)
doall))
(catch TwitterException e (println (.getMessage e)))))
(defn -main []
(getTweet))
スレッディングマクロ(->>)使うとmapのところが綺麗に書けます。
- つぶやきたいときは
;; tweet
(defn tweet []
(let [twitter (. (TwitterFactory.) getInstance)]
(.updateStatus twitter "test")))
参考
終わりに
twitter4j 久しぶりに使おうとすると twitter4j.properties を忘れます。
あと、なんか twitter develop のページが変わってて https://apps.twitter.com/ に辿り着くまでに時間かかりました。