miércoles, 2 de julio de 2014

Twitter.- Permisos, El Sistema De PIN Con Tweepy y Algunas Opiniones.

Los que me seguís un poco mas por el Twitter que estos días he estado jugando un poco con las apis de Twitter en especial con tweepy. He estado jugando hasta crearme un micro cliente para poder enviar tweet desde la consola fácil, rápido y liviano que creo que son 3 sinónimos que encajan muy bien con Twitter. Ademas, que para [TONTO] me va a ir genial. 

Lista de APIS: 


Pero bueno, no he venido ha hablar de otros proyectos. Así que vamos a lo que vamos. Os voy a explicar el funcionamiento del proceso de "logueo" para nuestra aplicación. 

Primero de todo nos iremos al siguiente enlace y entraremos utilizando nuestra cuenta de Twitter. 
Nos dirigimos arriba a la derecha donde debería estar nuestra foto de Twitter, clicamos en ella y nos vamos a My Aplications. "Registramos" nuestra primera aplicación (ya sabéis, le damos un nombre una descripción y una foto si queremos)
Una vez creada o definida (como queráis) nuestra app podremos configurarla haciendo clic en el nombre y dirigiéndonos al apartado Application settings. Pensad que esto es necesario para que nuestra app se pueda autenticar e utilizar el servicio. Pero, aquí hay una parte que no me gusta nada y es que si tratamos de cambiar los permisos, no podremos restringirlo solo a escritura que era lo que yo quería en un principio y no tiene porque tener derecho a leer tweets si no quiero. 

Una vez las opciones este como nosotros queramos iremos a Api Keys veremos que nos han creado dos ristras de numeros llamadas API key y API secret y mas abajo también hay otras dos llamadas Access token y Access token secret en las que no entrare ya que solo me serviría para loguearme yo y no es mi objetivo. 

Así que nos apuntamos la API key y la API secret y abrimos nuestro editor favorito y le damos caña.

import webbrowser
import tweepy
if __name__ == "__main__":

consumer_key = "Copia Aquí tu API key "
consumer_secret = "Copia Aquí tu API secret"
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
        
Ahora, y por razones de seguridad prefiero no gestionar contraseñas yo en el código así que le quiero enviar todo ese curro a Twitter que ellos saben mas que yo seguro así que nada. Haré que esta aplicación tenga que ser aprobada por el usuario y que una vez sea aprobada para descartar que sea una máquina que el usuario solo tenga que copiar pegar un pin (esto ya lo de Twitter así que no nos preocupamos solo tendremos que verificarlo)

webbrowser.open(auth.get_authorization_url())

pin = raw_input('escrive el pin de twitter.com: ').strip()

token = auth.get_access_token(verifier=pin)

Perfectisimo, solo que otra vez ... Para que necesito tantos permisos si solo quiero escribir un tweet. No tiene sentido. Para quien solo quiera jugar vale, pero imaginaros que tu app es vulnerada o le han cambiado el código... podrían estar automatizando diregido spam con mi API key y mi API secret solo por no capar la opción de leer tweets. 


Así es como funcionaria la implementación de permisos y Pin en App con Tweepy espero que os haya gustado y para enviar un tweet solo haría falta lo siguiente. 

        api = tweepy.API(auth)
api.update_status(raw_input('Dame tu Tweet: '))

Ya veis le pasamos la confirmación de la autorización a la Tweepy.Apy y utilizamos el modulo update_status para publicar lo que nos de la gana. Lo bueno es que si pones hashtags o enlaces ya aparecerán en Twitter bien puestos. Bueno, solo faltaría mejorarlo para que no tuvieras que autorizar a la aplicación cada vez que quieres enviar un tweet y ese tipo de cosas. Pero así es como funciona. 

Sed Buenos y jugad con esto que es divertido xD

4 comentarios: