2010-10-02 18 views
7

Sto cercando una libreria Python che sia compatibile con il motore di app e fornisca un'interfaccia all'API di Twitter.Libreria Twitter per App Engine Python?

Ho trovato il progetto python-twitter: qualcuno lo ha usato sul motore di app?

+0

ha appena scoperto che python-twitter utilizza urllib2 per urlfetch che potrebbe non essere consentito nel engin dell'app! –

+1

È possibile utilizzare urllib2 per effettuare richieste HTTP sul motore di app secondo [i documenti] (http://code.google.com/appengine/docs/python/urlfetch/overview.html#Fetching_URLs_in_Python). –

risposta

2

Sì, è possibile utilizzare python-twitter sul motore di app (è stato aggiunto il supporto quando python-twitter issue 64 è stato risolto).

+0

Grazie a David Underhill, sto cercando di usare questa libreria !! –

+0

@David Underhill: richiede l'importazione di OAuth2 e HTTPLib2. Per OAuth2, ho scaricato https://github.com/simplegeo/python-oauth2/tree/master/oauth2. Per HTTPLib2, ho scaricato http://code.google.com/p/httplib2/wiki/Install ed estrai la cartella python2/httplib2 per proiettare la cartella principale. Ho ricevuto l'errore http://paste.shehas.net/show/jbXyx2MSJrpjt7LR2Ksc/ – John

6

Ho appena passato da python-twitter a tweepy. Ha una copertura migliore, incorporata in OAuth e l'API Streaming.

Dai un'occhiata a this fork per lavorare con App Engine.

Successivamente modificare (grazie jmlane): La distribuzione principale è stato fissato a lavorare con App Engine in modo da ottenere da here.

+0

Usa tweepy in molti dei miei progetti AppEngine – honcheng

+0

Vale la pena ricordare che Tweepy [unito] (https://github.com/tweepy/tweepy/ commit/44749382de131e83df9eb0923899e4a3c9dcd5f7) le correzioni introdotte in questo fork upstream. Potrebbe voler modificare la tua risposta per indirizzare le persone a utilizzare la distribuzione principale. – jmlane

0

Come indicato, è possibile utilizzare python-twitter (nella sua attuale incarnazione). Per utilizzarlo, è sufficiente aggiungere il twitter.py al progetto Python-GAE, quindi creare un'istanza delle 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) 

E 'importante impostare la cache = Nessuno, perché questo disabilita la memorizzazione nella cache interna che utilizza il file system per impostazione predefinita (che non è consentito in GAE). Idealmente, qualcuno dovrebbe risolvere questo problema per usare memcached ... ma sono troppo laaazzyy ... ;-)

Aggiornamento: OK ... questo è davvero fastidioso ... è anche necessario estrarre le seguenti librerie da lib google_appengine ... significa che si dovrà aggiungere in modo esplicito i fasci di origine al progetto, invece di semplicemente riferimento:

  • OAuth2
  • httplib2

se non li metti in il tuo progetto funzionerà localmente ma non in GAE.

+0

Puoi insegnarmi come installare oauth2 e httplib2? Li ho appena scaricati da github e li ho messi nella cartella radice del mio progetto e aggiungo import importare oath2 e importare httplib2, ma GAE dice ancora che non esiste alcun modulo httplib2 – John

+0

@ John, dovrai aggiungere queste cartelle in modo esplicito nel codice dell'app GAE (sì, stai essenzialmente creando copie di quel codice per applicazione ... che è - lo so - lo zoppo) –

Problemi correlati