2010-10-17 5 views
1

Я хотел добавить твиттер-канал в свое приложение. Поэтому я загрузил python-twitter (с python-oauth) и django-syncr. Установлено все и что теперь? В моем основном представлении я хотел выполнить синхронизацию с Twitter. Таким образом, глядя на пакеты с исходными текстами и documentation я понял этот приказ:Использование django-syncr с твиттером

t = TwitterSyncr('name', 'pass') #: create TwitterSyncr for my user 
t.syncUser('name') #: get info for user from twitter but why give name again ? 
t.syncTwitterUserTweets('name') : #name again ?! 

Это не работает. Я получаю HTTP Error 401 - нет авторизации, но имя и пароль верны. Как мне его использовать? Мне нужен ключ API от Twitter? Во-вторых, что происходит в этом коде шаг за шагом? Когда моя модель django для TweetUser создана в рамках частных методов? И должен ли я создавать модель TweetSyncr каждый раз, когда я хочу синхронизировать свою модель с пользователем твитера? Пожалуйста помоги.

Ссылка авторам Краткая инструкция: http://jesselegg.com/archives/2008/02/19/django-syncr-synchronize-django-web/

Traceback: 
File "/home/django/core/handlers/base.py" in get_response 
    92.     response = callback(request, *callback_args, **callback_kwargs) 
File "/home/views.py" in landing 
    27.  t.syncUser('username') 
File "/home/syncr/tweet.py" in syncUser 
    53.   user_obj = self._syncTwitterUser(self._getUser(user)) 
File "/home/syncr/tweet.py" in _getUser 
    26.    tw_user = self.api.GetUser(user) 
File "build/bdist.linux-x86_64/egg/twitter.py" in GetUser 
    1633.  json = self._FetchUrl(url) 
File "build/bdist.linux-x86_64/egg/twitter.py" in _FetchUrl 
    2032.   url_data = opener.open(url, encoded_post_data).read() 
File "/bin/python-2.6.1/lib/python2.6/urllib2.py" in open 
    389.    response = meth(req, response) 
File "/bin/python-2.6.1/lib/python2.6/urllib2.py" in http_response 
    502.     'http', request, response, code, msg, hdrs) 
File "/bin/python-2.6.1/lib/python2.6/urllib2.py" in error 
    427.    return self._call_chain(*args) 
File "/bin/python-2.6.1/lib/python2.6/urllib2.py" in _call_chain 
    361.    result = func(*args) 
File "/bin/python-2.6.1/lib/python2.6/urllib2.py" in http_error_default 
    510.   raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 

Exception Type: HTTPError at/
Exception Value: 
+0

Я только что обнаружил, что твиттер недавно изменил аутентификацию OAuth. Итак, я использую key/secret вместо пользователя/pass? – DevAno1

+0

mope, который не работал – DevAno1

ответ

2

Я просто добавил инструкции, как бороться с Джанго-syncr и OAuth на моем блоге:

http://fromzerotocodehero.blogspot.com/2010/10/synchronising-django-with-twitter-using.html

В основном вам нужно обновить python-twitter до версии 0.9, а затем сделайте некоторые улучшения в методе syncr.api.tweet __init__. И вам нужно зарегистрировать новое приложение и получить ключи API.

+0

спасибо, теперь он работает! – DevAno1