Вопрос

Я искал способ обновить свой статус в Твиттере от клиента Python. Поскольку этому клиенту необходимо получить доступ только к одной учетной записи Twitter, можно сделать это с предварительно сгенерированным OAuth_token и Secret, согласно http://dev.twitter.com/pages/oauth_single_token

Однако пример кода, похоже, не работает, я получаю «не мог аутентифицировать вас» или «неверная подпись» ..

Поскольку существует множество различных библиотеки Python-Twitter (и не все они в курсе), я бы очень признателен, если бы кто-то мог указать мне библиотеку, которая в настоящее время работает для запросов на почту, или опубликовать какой-то образец кода !

Обновлять:Я попробовал решение Павела, и оно работает до тех пор, пока новое сообщение составляет всего одно слово длиной, но как только оно содержит пробелы, я получаю эту ошибку:

status = api.PostUpdate('hello world')
Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:\Python26\lib\site-packages\python_twitter\twitter.py", line 2459, in PostUpdate
        self._CheckForTwitterError(data)
      File "C:\Python26\lib\site-packages\python_twitter\twitter.py", line 3394, in _CheckForTwitterErro
    r
        raise TwitterError(data['error'])
    python_twitter.twitter.TwitterError: Incorrect signature

Однако, если обновление - это всего лишь одно слово, оно работает:

status = api.PostUpdate('helloworld')
{'status': 'helloworld'}

Есть идеи, почему это может произойти?

Заранее большое спасибо,

Хофф

Это было полезно?

Решение 2

Я смог решить эту проблему, используя другую библиотеку - поэтому я опубликую здесь свое решение для справки:

import tweepy
# http://dev.twitter.com/apps/myappid
CONSUMER_KEY = 'my consumer key'
CONSUMER_SECRET = 'my consumer secret'
# http://dev.twitter.com/apps/myappid/my_token
ACCESS_TOKEN_KEY= 'my access token key'
ACCESS_TOKEN_SECRET= 'my access token secret'

def tweet(status):
    '''
    updates the status of my twitter account
    requires tweepy (https://github.com/joshthecoder/tweepy)
    '''
    if len(status) > 140:
        raise Exception('status message is too long!')
    auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
    auth.set_access_token(ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET)
    api = tweepy.API(auth)
    result = api.update_status(status)
    return result

Другие советы

Вас может быть заинтересован в этом http://code.google.com/p/python-twitter/

К сожалению, документы не существуют, чтобы быть справедливыми, а последнее «выпуск» - в 2009 году.

Я использовал код из HG:

wget http://python-twitter.googlecode.com/hg/get_access_token.py
wget http://python-twitter.googlecode.com/hg/twitter.py

После (длительного) процесса регистрации приложений ( http://dev.twitter.com/pages/auth#register ) у вас должен быть ключ потребителя и секрет. Они уникальны для приложения.

Затем вам нужно подключить приложение к своей учетной записи, отредактировать get_access_token.py в соответствии с инструкциями в источнике (sic!) И запустите. Теперь у вас должен быть ключ и секрет токена доступа в Твиттере.

>>> import twitter
>>> api = twitter.Api(consumer_key='consumer_key',
            consumer_secret='consumer_secret', access_token_key='access_token',
            access_token_secret='access_token_secret')
>>> status = api.PostUpdate('I love python-twitter!')
>>> print status.text
I love python-twitter!

И это работает для меня http://twitter.com/#!/pawelprazak/status/16504039403425792 (Не уверен, видно ли это всем)

Тем не менее, я должен добавить, что мне не нравится код, поэтому, если я буду использовать его, я переписал его.

РЕДАКТИРОВАТЬ: Я прояснил этот пример более ясным.

Самое последнее место для документации Python-Twitter в настоящее время находится на GitHub (на которую на вас указывает страница кода Google.)

Теперь вам больше не нужно использовать инструмент командной строки, который поставляется с Python-Twitter, чтобы получить полный набор токенов и секретов доступа, https://dev.twitter.com Позвольте вам запросить их, когда вы зарегистрируете свое приложение.

После того, как у вас есть четыре различных значения учетных данных, первое, что вы хотите сделать, это проверить их, сделав тест API:

API = Twitter.API (Consumer_Key = 'consumer_key', consumer_secret = 'consumer_secret', access_token_key = 'access_token', access_token_secret = 'access_token_secret')

print api.verifycredentials ()

Это покажет вам, работают ли ваши учетные данные или нет. Если вы получите ошибку, следующим шагом будет пройти в Debughttp = True To Call API () - это приведет к печати всего разговора HTTP, чтобы вы могли увидеть сообщение об ошибке в Твиттере.

Как только учетные данные работают, вы можете попытаться позвонить по Postupdate () или даже просто GetTimeline ()

Я закодировал что -то, связанное с этим вопросом.

import tweepy
consumer_key = Your_consumer_key
consumer_secret = Your_consumer_secret
access_token = Your_access_token
access_token_secret = Your_access_token_secret_key

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
single_tweet = 'hello world'
api.update_status(single_tweet)
print "successfully Updated"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top