1

Twitter v1 API は現在機能していないため、Search API と Streaming API を使用してハッシュタグ情報を照合しようとしています。Search API はレートが制限されているため、ハッシュタグに多くのエントリがある場合、おそらく一部を見逃してしまいます。ストリーミングは道のりのように思えました。

ここで OAuth2 を使用するのは、私の (匿名化された) コードです。

import oauth2 as oauth
import json

consumer_key = "<consumer key from twitter developer site>"
consumer_secret = "<consumer secret>"
oauth_token = "<access token>"
oauth_token_secret = "<access token secret>"
consumer = oauth.Consumer(key=consumer_key, secret=consumer_secret)
access_token = oauth.Token(key=oauth_token, secret=oauth_token_secret)
client = oauth.Client(consumer, access_token)

terms = json.dumps({'track' : 'twitter'})
stream_endpoint = "https://stream.twitter.com/1.1/statuses/filter.json"
response, data = client.request(stream_endpoint,"POST", body=terms, headers={'Content-Type':'application/json'})

私が遭遇する問題は、これが常に次のメッセージを返すことです:

>>>'No filter parameters found. Expect at least one parameter: follow track locations\r\n'
4

2 に答える 2

0

あなたのエラーはJSONデータを使用しているためだと思います

terms = json.dumps({'track' : 'twitter'})

このようにコードを書く必要があります

terms = 'track=twitter'
于 2013-07-18T02:46:29.670 に答える
0
    USER = request.params.get('username', '00000')
    LIMIT = request.params.get('limit', '50')
    REQUEST_TOKEN_URL = 'https://api.twitter.com/oauth/request_token'
    consumer_key    ='424245wfdsfa4'    
    consumer_secret ='afar234252523adsasd'

    if consumer_key is None or consumer_secret is None:
        print 'you need consumer_key & consumer_secret key'
        sys.exit(1)

    signature_method_hmac_sha1 = oauth.SignatureMethod_HMAC_SHA1()
    oauth_consumer             = oauth.Consumer(key=consumer_key, secret=consumer_secret)
    oauth_client               = oauth.Client(oauth_consumer)


    response, content = oauth_client.request(REQUEST_TOKEN_URL, 'POST')

    if response['status'] == '200':
        request_token = dict(parse_qsl(content))
    else:
        print 'Invalid response from Twitter requesting  token.........: %s' % response['status']

    endpoint = 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' + USER + '&count=' + LIMIT
    response, content = oauth_client.request(endpoint, 'GET')
    url = response['content-location']
    f = urllib2.urlopen(url)
    response = f.read()
    return simplejson.loads(response)
于 2014-03-21T05:30:41.673 に答える