2013-06-21 6 views
5

私は、ストリームAPIに接続するtwython(twitter APIライブラリのpython用)を使用していますが、おそらく単語でフィルタリングされたpublic twitterストリームしか取得していないようです。認証されたユーザータイムラインや@mentionsのリアルタイムストリームを取得する方法はありませんか?twitter stream API 1.1による言及とDMの入手(twythonの使用)

私はREST APIへの遅延呼び出しを繰り返してきましたが、そのような言及を得るにはTwitterが好きではありません。

Twythonのドキュメントはそれについて私を大いに助けてくれていません。公式のtwitterドキュメントもありません。

(twitter API v1.1用の)ストリーミングのためにtwythonよりも優れたPythonライブラリがある場合。私はその提案を感謝します...ありがとう。

答えて

3

私の研究の冒頭で、python-twitterとなりました。 twitterライブラリfor Python。しかし最後に、Python Twitter Toolsがより一般的で、twitterストリーミングもサポートするようです。

ちょっとしたことですが、ストリーミングAPIとREST APIが直接のメッセージでは同じではありません。 - まだ存在しないスクリプトを起動する前に受け取ったもの

import twitter # if this module does not 
       # contain OAuth or stream, 
       # check if sixohsix' twitter 
       # module is used! 
auth = twitter.OAuth(
    consumer_key='...', 
    consumer_secret='...', 
    token='...', 
    token_secret='...' 
) 

stream = twitter.stream.TwitterStream(auth=auth, domain='userstream.twitter.com') 

for msg in stream.user(): 
    if 'direct_message' in msg: 
     print msg['direct_message']['text'] 

このスクリプトは、すべての新しいメッセージが出力されます:この小さなサンプルスクリプトを使用すると、ダイレクトメッセージを取得するには、ユーザ・ストリームを使用することができる方法を示しています。

0

直接メッセージをストリーミングする方法はありません。

ただし、ユーザーのタイムラインをストリーミングする方法があります。ここにTwitterでドキュメントチェックアウト:https://dev.twitter.com/docs/streaming-apis/streams/user

from twython import TwythonStreamer 


class MyStreamer(TwythonStreamer): 
    def on_success(self, data): 
     if 'text' in data: 
      print data['text'].encode('utf-8') 
     # Want to disconnect after the first result? 
     # self.disconnect() 

    def on_error(self, status_code, data): 
     print status_code, data 

# Requires Authentication as of Twitter API v1.1 
stream = MyStreamer(APP_KEY, APP_SECRET, 
        OAUTH_TOKEN, OAUTH_TOKEN_SECRET) 

stream.user() 

requestshttps://github.com/kennethreitz/requests)の新バージョンがリリースされるまでは、しかし、あなたのフォロワーからのツイートは背後つのポストになります。これは比較的早く修正する必要があります! :)

+2

これは間違っているようです。直接メッセージストリーミングについては、こちらを参照してください:https://dev.twitter.com/docs/streaming-apis/streams/user#Direct_messages – lumbric

+0

ああ、申し訳ありません。私はその文書を見たことがありません。 –

+0

DMストリーミングを反映するために、回答を更新または削除してください。 – Sheharyar

関連する問題