1
我是clojure的新手。我正在嘗試通過clojure獲取流媒體推文。我使用twitter-api庫來獲取流媒體推文,代碼片段如下。如何在clojure中使用twitter-api獲取流媒體推文?
(ns hello-twitter
(:use
[twitter.oauth]
[twitter.callbacks]
[twitter.callbacks.handlers]
[twitter.api.streaming])
(:require
[clojure.data.json :as json]
[http.async.client :as ac])
(:import
(twitter.callbacks.protocols AsyncStreamingCallback)))
(def my-creds (make-oauth-creds "app consumer key"
"app consumer secret"
"user-access-token"
"user-access-token-secret"))
(def ^:dynamic
*custom-streaming-callback*
(AsyncStreamingCallback. (comp println #(:text %) json/read-json #(str %2))
(comp println response-return-everything)
exception-print))
(statuses-filter :params {:track "Cricket"}
:oauth-creds my-creds
:callbacks *custom-streaming-callback*)
返回的json中的body部分應該不斷更新。我得到的價值:身體就像<[email protected]: :pending>
,我無法弄清楚如何得到推文。
如何建立不間斷連接以獲取流式tweets輸出?
無極被返回。我無法通過取消承諾來獲取推文。那麼,如何實現承諾,以便我可以獲得流媒體推文? – sammy
對不起,我現在看到了。我想如果這是一個無限的流,那麼承諾永遠不會有最終的交付價值。也許你需要在取消引用的承諾中使用'doseq'來在每條推文發生時執行副作用? – TheQuickBrownFox