2013-08-20 2 views
1

У меня есть проблемы с получением твиты из твиттера потокового API: https://stream.twitter.com/1.1/statuses/filter.jsonTwitter Streaming API несанкционированным

Я всегда получаю ошибку 401, несанкционированным. Время сервера правильное.

Я уже подписываю запрос. Вот мой код (питон):

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()) 

Что я делаю неправильно?

Пожалуйста, помогите мне.

Спасибо заранее, Сабрина

ответ

0

Вы либо предоставления ему некорректных полномочий или есть ошибка вызывает неправильную подпись, которая будет рассчитана. Здесь может быть полезно установить уровень журнала в DEBUG.

Используя свои полномочия от twitter application page у меня не было никаких проблем выборки потока с использованием

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-библиотекой.

Смежные вопросы