[pyar] Consulta sobre Tweepy

Agustin Miguel Sarría asarria en gmail.com
Mar Ago 10 16:26:08 ART 2010


Buenas tardes gente.
Tengo una duda con el módulo Tweepy para usar twitter.
Mi problema es este:
Estoy probando un programita dummy para acceder a Twitter mediante OAuth.
El problema es que haciéndolo desde una máquina con conexión por medio de un
router a internet (mi casa), pude usarlo sin problemas (me arma la conexión
a Twitter OK)

Ahora, usándolo desde la máquina del trabajo, que tiene un proxy, no
funciona. Me da error TweepError: Twitter error response: status code = 400.
Lo volqué a un HTML y me da esto:

 ERROR El URL solicitado no se ha podido conseguir
------------------------------

Mientras se intentaba traer el URL:
/1/statuses/home_timeline.json<file:///C:/1/statuses/home_timeline.json>

Ha ocurrido el siguiente problema:

   - *URL incorrecto. *

Algún aspecto del URL solicitado es incorrecto. Posibles problemas:

   - Falta o es incorrecto el protocolo de acceso (debe ser ``http://'' o
   similar)
   - Falta el nombre de la máquina
   - Hay un doble-escape ilegal en la ruta de la URL
   - Hay caracteres ilegales en el nombre de máquina; el caracter de
   subrayado (_) no está permitido


------------------------------
Generated Tue, 10 Aug 2010 17:19:16 GMT by
proxy.tmoviles.com.ar(squid/2.5.STABLE9)

El tema es que modifiqué api.py de tweepy en el __init__ agregándole el
proxy

        self.proxy_host="proxy.tmoviles.com.ar"
        self.proxy_port=8080

y en binder.py modifiqué el código (según el foro del creador del módulo)
que hace que la conexión, si existe el proxy_port, la use al establecer la
conexión.
...
               if self.api.secure:
                    if self.api.proxy_host:
                        conn = httplib.HTTPSConnection(self.api.proxy_host,
self.api.proxy_port)
                    else:
                        conn = httplib.HTTPSConnection(_host)
#                    conn = httplib.HTTPSConnection(self.host)
                else:
#                    conn = httplib.HTTPConnection(self.host)
                    if self.api.proxy_host:
                        conn = httplib.HTTPConnection(self.api.proxy_host,
self.api.proxy_port)
                    else:
                        conn = httplib.HTTPConnection(_host)
...

Ahora, les confirmo que estoy usando bien el tema de tokens que pide el
sistema OAuth, etc, etc. Esto lo se porque corriendo la misma app sin proxy
en el medio, anda 10 puntos en la máquina que no está detrás del proxy y sin
modificar nada del módulo.
La verdad es que no se cómo configurar proxy, firewall, etc, de windows XP,
o en el programa, para hacer que llegue correctamente la información de la
app a la api de twitter o viceversa.
Se me ocurre que por ahí viene la mano porque la situación diferente es el
proxy.
Alguien me puede tirar una pista?
Por cierto, no tengo permisos de administrador para tocar configuraciones de
proxy o de firewall corporativo, así que si ese es el problema, estoy frito.

Mil gracias!!

El programita de prueba es el siguiente (obviamente cargándole los datos de
keys y secrets):

import tweepy
consumer_key = ""
consumer_secret = ""
access_token = ""
access_token_secret = ""

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
bot = tweepy.API(auth)
tweets = bot.home_timeline()

bot.update_status("PRUEBA")


Intentado utilizar otra función
print "a.test()=",a.test()

Me da False

Y al utilizar
print a.me()

Me vuelca el HTML idéntico al de más arriba, y como Traceback:
Traceback (most recent call last):
  File "C:/Python26/Programas/test_tweepy.py", line 20, in <module>
    print a.me()
  File "C:/Python26/Programas\tweepy\api.py", line 177, in me
    return self.get_user(screen_name=self.auth.get_username())
  File "C:/Python26/Programas\tweepy\auth.py", line 161, in get_username
    raise TweepError("Unable to get username, invalid oauth token!")
TweepError: Unable to get username, invalid oauth token!

No se si es relevante, pero en general no he tenido problemas de usar
programas que acceden por el proxy hacia afuera o dentro (LogmeIn, internet
común, twitter común, Seesmic Desktop, DropBox, etc)
Pude usar python para acceder a web y obtener la timeline normal de atom.

Gracias!
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100810/e3f14e65/attachment.html>


More information about the pyar mailing list