2010-10-02 3 views
7

Я ищу библиотеку Python, которая совместима с движком приложения и предоставляет интерфейс для API Twitter.Twitter-библиотека для App Engine Python?

Я нашел проект python-twitter - кто-нибудь использовал его в приложении?

+0

только что нашел, что python-twitter использует urllib2 для urlfetch, который может не разрешаться в приложении engin! –

+1

Вы можете использовать urllib2 для создания HTTP-запросов на движке приложения в соответствии с [документами] (http://code.google.com/appengine/docs/python/urlfetch/overview.html#Fetching_URLs_in_Python). –

ответ

2

Да, вы можете использовать python-twitter на движке приложения (поддержка была добавлена, когда python-twitter issue 64 был разрешен).

+0

Спасибо Дэвид Underhill, я пытаюсь использовать эту библиотеку !! –

+0

@David Underhill: для этого требуются импорт OAuth2 и HTTPLib2. Для OAuth2 я загрузил https://github.com/simplegeo/python-oauth2/tree/master/oauth2. Для HTTPLib2 я загрузил http://code.google.com/p/httplib2/wiki/Установить и извлечь папку python2/httplib2 для создания корневой папки. Я получил ошибку http://paste.shehas.net/show/jbXyx2MSJrpjt7LR2Ksc/ – John

6

Я только что переключился с python-twitter на tweepy. Он имеет лучшее покрытие, встроенный OAuth и Streaming API.

Взгляните на this fork для работы с App Engine.

Позже редактировать (спасибо jmlane): Основное распределение было зафиксировано для работы с App Engine поэтому получить его от here.

+0

Используйте ее tweepy во многих моих проектах AppEngine – honcheng

+0

Стоит упомянуть, что Tweepy [merged] (https://github.com/tweepy/tweepy/ commit/44749382de131e83df9eb0923899e4a3c9dcd5f7) исправления, введенные в этой вилке вверх по течению. Возможно, вы захотите отредактировать свой ответ, чтобы заставить людей использовать основное распространение. – jmlane

0

Как указано, вы можете использовать python-twitter (в его текущем воплощении). Чтобы использовать его, просто добавьте twitter.py в свой проект Python-GAE, а затем создать экземпляр API:

twitter_api = twitter.Api(consumer_key=consumer_key, consumer_secret=consumer_secret, access_token_key=access_token_key, access_token_secret=access_token_secret, cache=None) 

Это важно установить кэш = None, потому что это не отключает внутреннее кэширование, который использует файловую систему по умолчанию (что не допускается в GAE). В идеале, кто-то должен исправить это, чтобы использовать memcached ... но я слишком laaazzyy ... ;-)

Обновление: ОК ... это волнующий раздражающий ... вам также нужно извлечь следующие библиотеки из google_appengine Lib ... означает, что вы должны явно добавить пакеты источника для вашего проекта, а не только ссылки на них:

  • oauth2
  • httplib2

, если не добавить их в ваш проект, он будет работать локально, но не в GAE.

+0

Можете ли вы научить меня, как установить oauth2 и httplib2? Я просто загружаю их из github и помещаю их в корневую папку моего проекта и добавляю импорт oath2 и импортирую httplib2, но GAE все еще говорит, что нет модуля httplib2 – John

+0

@John вам нужно будет явно добавить эти папки в свой код приложения GAE (да, вы по существу создаете копии этого кода для каждого приложения ... которое является - я знаю - хромым) –