2010-10-02 17 views
7

Estoy buscando una biblioteca de Python que sea compatible con el motor de aplicaciones y proporcione una interfaz para la API de Twitter.Biblioteca de Twitter para App Engine Python?

Encontré el proyecto python-twitter - ¿Alguien lo ha usado en el motor de la aplicación?

+0

acaba de encontrar que python-twitter usa urllib2 para urlfetch, que podría no estar permitido en la aplicación engin! –

+1

Puede usar urllib2 para realizar solicitudes HTTP en el motor de aplicaciones según [los documentos] (http://code.google.com/appengine/docs/python/urlfetch/overview.html#Fetching_URLs_in_Python). –

Respuesta

2

Sí, puede usar python-twitter en el motor de la aplicación (se agregó soporte cuando se resolvió python-twitter issue 64).

+0

Gracias David Underhill, ¡estoy tratando de usar esta biblioteca! –

+0

@David Underhill: Requiere importar OAuth2 y HTTPLib2. Para OAuth2, descargué https://github.com/simplegeo/python-oauth2/tree/master/oauth2. Para HTTPLib2, descargué http://code.google.com/p/httplib2/wiki/Install y extraje la carpeta python2/httplib2 para proyectar la carpeta raíz. Obtuve el error http://paste.shehas.net/show/jbXyx2MSJrpjt7LR2Ksc/ – John

6

Acabo de cambiar de python-twitter a tweepy. Tiene una mejor cobertura, OAuth integrado y la API de Streaming.

Eche un vistazo a this fork para trabajar con App Engine.

Más tarde editar (gracias jmlane): La distribución principal se fijó para trabajar con App Engine así que conseguirlo de here.

+0

Úselo tweepy en muchos de mis proyectos de App Engine – honcheng

+0

Vale la pena mencionar que Tweepy [fusionada] (https://github.com/tweepy/tweepy/ commit/44749382de131e83df9eb0923899e4a3c9dcd5f7) las correcciones introducidas en este fork upstream. Puede desear editar su respuesta para indicar a las personas que utilicen la distribución principal. – jmlane

0

Como se indicó, puede usar python-twitter (en su versión actual). Para usarlo, sólo tiene que añadir twitter.py a su proyecto de Python-GAE, a continuación, crear una instancia de la 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) 

Es importante establecer cache = Ninguno, porque esto desactiva el almacenamiento en caché interna que utiliza el sistema de archivos por defecto (lo cual no está permitido en GAE). Idealmente, alguien debería arreglar esto para usar memcached ... pero estoy demasiado laaazzyy ... ;-)

Actualización: OK ... esto es increíblemente molesto ... también necesita extraer las siguientes bibliotecas de la google_appengine lib ... lo que significa que tendrá que añadir de forma explícita los haces de origen para su proyecto en lugar de sólo referencia a ellos:

  • OAuth2
  • httplib2

si no añadirlos a su proyecto, funcionará localmente pero no en GAE.

+0

¿Puede enseñarme cómo instalar oauth2 y httplib2? Simplemente los descargué de github y los puse en la carpeta raíz de mi proyecto y agregué import oath2 e importé httplib2, pero GAE aún dice que no hay ningún módulo httplib2 – John

+0

@John que deba agregar explícitamente esas carpetas en el código de su aplicación GAE (sí, esencialmente estás creando copias de esos códigos por aplicación ... que es - lo sé - cojo –