In [1]:
import json
import requests
BASE = "https://graph.facebook.com"
VERSION = "v2.5"
# Si queremos imprimir los json de respuesta
# de una forma mas agradable a la vista podemos usar
def print_pretty(jsonstring, indent=4, sort_keys=False):
print(json.dumps(jsonstring, indent=indent, sort_keys=sort_keys))
Tomamos el access token temporal creado en Graph API Explorer. Si queremos crear uno que sea permanente podemos usar las instrucciones de esta pregunta de StackOverflow o de esta otra pregunta. Alternativamente, podemos crear un token de acceso con nuestra id y clave:
In [2]:
with open("credentials") as f:
access_token = str(f.read().splitlines()[0])
Partiremos con lo más simple. Una consulta GET
para obtener información sobre nosotros mismos.
GET /me
El token de acceso se envía como parámetro, junto con los campos que queremos obtener de la consulta:
In [3]:
url = "{}/{}/me".format(BASE, VERSION)
params = {
"access_token": access_token,
"fields": ["id", "name"]
}
req = requests.get(url, params=params)
print_pretty(req.json())
my_id = req.json()["id"]
my_name = req.json()["name"]
Ahora, publicaremos un estado. Esta request nos retornará la id
del post, que será publicado con visibilidad "Solo para mi" (Only me)
POST /me/feed
In [8]:
url = "{}/{}/me/feed".format(BASE, VERSION)
params = {
"access_token": access_token,
"message": "Este estado lo publiqué usando la API de Facebook :O"
}
req = requests.post(url, params=params)
status_id = req.json()["id"]
print("status_id = {}".format(status_id))
Luego, podemos directamente borrar un estado solo si lo publicamos usando la API:
DELETE /{status-id}
In [10]:
url = "{}/{}/{}".format(BASE, VERSION, status_id)
params = {
"access_token": access_token
}
req = requests.delete(url, params = params)
print_pretty(req.json())