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:
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.
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):
Luego en la sección Extended Permissions
Hacemos click en Get Access Token y se abrirá una venta de conexión a Facebook donde hacemos click en Ok.
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.
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.