1

Twitter ストリーミング API からツイートを取得する際に問題があります: https://stream.twitter.com/1.1/statuses/filter.json

私はいつもエラー 401、無許可を取得します。サーバー時間は正確です。

私はすでにリクエストに署名しています。これが私のコードです(python):

    token = oauth.Token(key = TWITTER_ACCESS_TOKEN, secret = TWITTER_ACCESS_TOKEN_SECRET)
    consumer = oauth.Consumer(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET)

    params = {'oauth_version': '1.0', 'oauth_nonce': oauth.generate_nonce(), 'oauth_timestamp': int(time.time())}
    req = oauth.Request(method='POST', parameters=params, url='https://stream.twitter.com/1.1/statuses/filter.json?track=twitter')
    req.sign_request(oauth.SignatureMethod_HMAC_SHA1(), consumer, token)

    urllib2.urlopen(req.to_url())

私は何を間違っていますか?

私を助けてください。

前もって感謝します、 サブリナ

4

1 に答える 1

0

間違った資格情報を提供しているか、間違った署名が計算される原因となるバグがあります。ここでは、ログ レベルを DEBUG に設定すると役立つ場合があります。

Twitter アプリケーション ページの資格情報を使用して、ストリームを取得するのに問題はありませんでした。

from requests_oauthlib import OAuth1Session

key = "<your client key>"
secret = "<your client secret>"
token = "<your token here>"
token_secret = "<token secret>"

twitter = OAuth1Session(key, client_secret=secret,
                        resource_owner_key=token,
                        resource_owner_secret=token_secret)

r = twitter.get(
    'https://stream.twitter.com/1.1/statuses/filter.json?track=twitter',
    stream=True
)

for line in r.iter_lines():
    if line:
        print line

requests-oauthlibを使用します。上記がうまくいく場合、資格情報は正しく、問題は oauth ライブラリにある可能性があります。

于 2013-09-13T14:05:27.503 に答える