Materia
Ejercicios


Archivos

Los archivos que se detallan a continuación servirán como base para el juego que hay que implementar. Puede descargarlo haciendo click en el siguiente enlace.

A continuación se describe cada uno de ellos:

  • funciones.py: Este archivo deberá contener las funciones necesarias para el correcto funcionamiento del programa.
  • configuracion.py: En este archivo se definen una serie de constantes y/o parámetros que ustedes puede modificar a gusto (siempre y cuando siga las instrucciones para cada valor).
  • main.py: Éste es el archivo principal del programa. Este posee el loop principal que permite desde donde se llamará a las funciones implementadas en funciones.py. Éste es el archivo que debe ejecutar para hacer sus pruebas. No lo modifique, a no ser que quiera atreverse a implementar nuevas funcionalidades.
  • utilidades.py: módulo donde se definen las funciones a utilizar en su tarea. Puede agregar más funciones pero no borrar o modificar las que ya hay.
  • facebook.py: Módulo para la interacción con Facebook. No lo modifique.

Además, al ejecutar el archivo main.py de la tarea, se crearán automáticamente archivos con extensión .pyc para el funcionamiento del programa. Ignore dichos archivos.

Interacción con Facebook

Las funciones para interactuar con Facebook no son parte del lenguaje Python, sino que son provistas por el módulo Facebook Python SDK, el que necesita la librería requests para funcionar. Descárguela del siguiente link Requests lib la versión correspondiente a su versión de python (py2.7, win32 para 32bits o amd64 para 64bits).

Vaya ingresando los siguientes ejemplos en su consola, tras importar las funciones de utilidades.py, para ver en vivo y en directo cómo opera se interactúa. Obviamente para la comunicación con Facebook es necesario estar conectado a Internet.

Primero que todo es necesario poder conectarse con Facebook, para ello debemos obtener una llave de acceso desde el Graph API Explorer. Ingresando al link, hacemos click en el botón Get Access Token, lo que abrirá una ventana preguntándonos los permisos que esa llave tendrá, donde marcaremos los siguientes campos (que serán los elementos que luego ocuparemos):

../../_images/token1.jpg
  • user_about_me
  • user_activities
  • user_likes
  • user_status
  • user_actions.news
../../_images/token2.png

Luego en la sección Extended Permissions

  • publish_actions
  • read_stream
../../_images/token3.png

Hacemos click en Get Access Token y se abrirá una venta de conexión a Facebook donde hacemos click en Ok.

../../_images/token4.png

Finalmente preguntará con quien compartiremos lo que hagamos a través de nuestra aplicación, para la tarea pondremos Público para poder interactuar con los compañeros, click en Ok y volveremos a la ventana principal donde se habrá llenado el campo Access Token: con un código de varias letras y números. Éste es la llave de acceso que necesitaremos para establecer la conexión.

../../_images/token5.png ../../_images/token6.png

Nota

Después de 60 minutos el Access Token deja de estar operativo por seguridad. En tal caso, es necesario obtener el Access Token de nuevo y cambiarlo por el anterior.

Estamos listos para comenzar a trabajar con nuestra cuenta de Facebook desde Python. Para facilitar el proceso se creó el archivo utilidades.py que te entregará varias funcionalidades listas. Para utilizarlas, debes crear un archivo .py (ej: funciones.py) en la misma carpeta que esté el archivo utilidades.py, e ingresar en este

from utilidades import *

Ahora partamos con algo simple, editando el archivo .py creado. Para probar nuestra conexión, primero le daremos like a la siguiente página de Facebook (de fabricación Sansana) e ingresamos los siguientes comandos

token = 'ACC34...' # Access Token que generamos en Facebook
fb = conexion(token)
likes = getPagesLike(fb)
print likes[0]['id'] == "1487566348131889"

Si tras ejecutar el programa se imprime True quiere decir que hicimos todo correctamente. Expliquemos lo realizado, primero creamos la conexión con Facebook, luego rescatamos las páginas “gustadas” y finalmente comparamos si el id del primero de ellos correspondía al like que hicimos. Además puedes probar las siguientes funciones y ver los resultados

me = getMe(fb)
print 'Hola', me['name']
post = getWall(fb, 20)
print 'Tu ultimo post fue:', post[0]['message']

A continuación veremos las opciones para publicar en Facebook. Nuevamente aprenderemos lo básico con un ejemplo, ingresemos las siguientes líneas de código

page = getPage(fb, "1487566348131889")
text = 'IWI131 tarea3 probando ' + page['name'] + ' :D'
post = postWall(fb, text, page['link'])
print post['id']

Si tras ejecutar las líneas anteriores nos aparece un número, todo funcionó bien. Entendamos el código, de la página anterior rescatamos la información (con la función getPage) para utilizarla en nuestra publicación. Creamos el texto y publicamos el link de la página con nuestro texto. Finalmente obtenemos el id de nuestra publicación. Además puedes probar los siguientes códigos

comment = postComment(fb, post['id'], 'Mejor tarea ever!!')
like = postLike(fb, comment['id'])
print like
nlikes = getIdLike(fb, comment['id'])
print len(nlikes)

Terminamos consultando las publicaciones que han sido hechas con la palabra de IWI131. Agregue las siguientes sentencias

publicTags = searchTag(token, fb, 'IWI131', 10)
print 'Ultimo estudiante trabajando:', publicTags[0]['from']['name']

Ahora ya puedes interactuar con Facebook en tu programa. Para más detalles puedes revisar el archivo utilidades.py en donde se resume todo lo anterior.