
En este artículo vamos a explicar cómo conectar KNIME con Facebook Insights. Para ello, además de KNIME como plataforma analítica, vamos a utilizar Facebook Developers para configurar los permisos de acceso y la API Graph de Facebook para realizar las peticiones web.
1. Introducción
El análisis de redes sociales es un elemento clave para el desarrollo de la estrategia digital. A la hora de supervisar un plan de marketing digital, es necesario tener a mano toda la información relevante, de forma rápida y actualizada, para poder tomar las decisiones adecuadas en el momento justo.
En BaseCero Marketing utilizamos KNIME como herramienta analítica, ya que nos permite agrupar todos los canales digitales y trabajar con los datos de forma conjunta. Desde esta herramienta podemos acceder de forma directa a Google Analytics, cargar datos propios o monitorizar Twitter, por ejemplo.
Sin embargo, en el caso de Facebook no contamos con un nodo de conexión que nos permita acceder a las estadísticas de una Fan Page. Para añadir este canal a la monitorización automática hemos buscado la forma de acceder a Facebook Insights desde KNIME, utilizando la API Graph de Facebook y las funcionalidades de Web Services de la herramienta analítica programa.

Nota: Facebook Insights es una herramienta gratuita que nos permite acceder a los datos detallados de las páginas de la red social que administramos, o sobre las que tenemos permisos de acceso. Proporciona multitud de datos sobre la actividad de la página y sus seguidores, sobre la audiencia, las campañas de publicidad o el tipo de interacción, entro otros.
Si administras una página de Facebook, son los datos que aparecen en la sección de “estadísticas” en el perfil de empresa.
Si quieres saber más sobre Facebook Insights puedes consultar este artículo.
Ventajas de conectar KNIME con Facebook
Antes de empezar, ¿para qué queremos liarnos con todo esto?
Sistematizar las tareas de acceso y tratamiento de datos es necesario para poder realizar un análisis digital adecuado. En el caso de Facebook, estas son algunas de las ventajas más importantes:
– Automatizar el seguimiento de una página:
Una vez preparado nuestro proceso, podemos programar su ejecución periódica. Si estos datos alimentan un informe (con Google Data Studio por ejemplo), podemos conectar ambas herramientas para automatizar todo el proceso.
– Desarrollo de KPIs propios:
Al realizar nosotros mismos la petición de datos de Facebook Insights, podemos seleccionar solo aquellos que son relevantes para el proyecto y definir los periodos temporales que más nos interesan.
– Monitorización de campañas SMM:
La automatización del análisis de campañas pagadas permite definir avisos y alertas sobre KPIs con un rendimiento especialmente bueno o malo y reaccionar rápidamente para mejorar la campaña.
En resumen, automatizar tareas te permite ahorrar tiempo y emplearlo en lo realmente necesario, averiguar cómo mejorar el rendimiento del proyecto digital.
Descripción del proceso:
Para este proceso vamos a utilizar KNIME como herramienta para generar consultas a Facebook Insights a través de la API Graph. A continuación se muestra el esquema del proceso que realizaremos en este artículo:
Esquema del proceso:

Preparación de KNIME:
Por el lado de KNIME solo necesitamos tener instalada la extensión “REST Client Extension”, dentro de la categoría de “Tools & Services”. Esta extensión nos permite lanzar servicios web, programas diseñados para el intercambio de información entre redes de máquinas.
Si quieres saber más sobre los diferentes tipos de Web Services, visita este artículo.
Dicho de otra manera, esta extensión nos va a permitir lanzar consultas desde KNIME a la API Graph de Facebook y conectarnos con Facebook Insights.
Para consultar los detalles de la API Graph de Facebook, consulta este enlace:
La instalación de la extensión en KNIME se puede realizar desde el nuevo portal Knime Hub, con la función de “drag &drop” o desde el propio programa (menú file / Install New Extensions).
Este es el enlace de la última versión de REST Client Extension:
Una vez instalada, nos aparecen los nodos siguientes en nuestro KNIME:

2. Cómo conectar Knime con Facebook Insights
Una vez tenemos preparado KNIME podemos empezar con el proceso de conexión con los datos de Facebook.
Resumen del proceso:
– Vamos a crear una app en Facebook Developers para centralizar los permisos de lectura de página y sistema de autorización de acceso a los datos (pasos 1, 2 y 3).
– Desde KNIME, vamos a lanzar una consulta para la API Graph de Facebook, que incorpora los permisos de acceso de nuestra app a la página que queremos analizar y las dimensiones y métricas a recopilar de Facebook Insights. Esta consulta vía Web Services nos devuelve la información requerida en formato JSON (pasos 4 y 5).
– Con los datos obtenidos desde la página de Facebook ya en KNIME, solo tendremos que transformar el formato JSON a un formato tabular y colocar los datos a nuestro gusto para empezar a trabajar con ellos (pasos 6 y 7)
Paso 1. Crear aplicación en Facebook Apps y Solicitud de permisos de acceso
Creación y configuración de Facebook App en FB developers:
Para crear una aplicación en Facebook tenemos que darnos de alta el Facebook for Developers. Solo hace falta un perfil personal de la red social y el registro es totalmente gratuito.
Una vez dados de alta en Facebook for Developers, en la parte superior derecha de nuestra cuenta, tenemos la opción de consultar nuestras aplicaciones y crear una nueva. En el menú desplegable, seleccionamos la primera opción “Administrar integraciones empresariales”

A continuación tenemos de dar nombre a la aplicación, y especificar un mail de contacto de la aplicación.
Ya tenemos creada la aplicación, ahora hay que instalar sobre ella el módulo de “Inicio de sesión con Facebook”, para obtener los permisos de acceso necesarios. Para ello, sobre la lista de productos que podemos incorporar a nuestra app, pinchamos en configurar en el módulo mencionado.

Ahora tenemos que configurar el acceso de nuestra app a Facebook Insights:
Sobre el menú izquierdo de nuestra aplicación, seleccionamos “Revisión de la aplicación / Permisos y funciones” y buscamos “read_insights” y pulsamos el botón de “Solicitar acceso avanzado”:

Recientemente Facebook ha cambiado el funcionamiento de los permisos de acceso de aplicaciones. Debido a este cambio, para poder utilizar nuestra app sobre Facebook Insights tenemos que validarla, ya sea sobre una cuenta comercial de Facebook Business, o rellenando la información que nos piden y solicitando la validación individual de la app (deshabilitado temporalmente por COVID-19, a fecha de este artículo).
En este enlace se puede revisar toda la documentación sobre el proceso de validación individual.
Paso 2: Obtención del Token de seguridad
Una vez que tenemos creada y validada nuestra app de Facebook Developers, vamos a utilizar el explorador de la API Graph para obtener el token de seguridad. Este código, junto con los tokens propios de nuestra app, nos van a permitir construir nuestra consulta a los datos de Facebook Insights desde KNIME.
Aunque es un proceso algo “engorroso”, al fin y al cabo es la manera de asegurar que los desarrollos de Facebook Developers solo pueden acceder a las páginas que han concedido previamente los permisos necesarios.
Obtención del token de seguridad
Podemos acceder al explorador de la API Graph desde la página de Facebook Developers, con la sesión iniciada, en la barra superior, herramientas. Tiene 2 secciones principales, el editor de consultas y el panel de gestión de permisos de acceso.

En el panel de permisos de acceso (derecha), seleccionamos:
- Aplicación de Facebook: seleccionamos la aplicación que hemos creado en el paso anterior (nota: en nuestro caso, hemos utilizado nuestra app validada con BaceCero Marketing en Facebook Business para seguir con la explicación del artículo).
- Usuario o página: página a la que queremos acceder para consultar sus estadísticas

Para obtener el token de página, tenemos que vincular nuestra app con un usuario de Facebook que ya tenga permisos de analista sobre la página. Puede hacerse desde la administración de la propia página de Facebook o vinculando una cuenta de Facebook Business a nuestra app.
Si quieres saber más sobre cómo añadir perfiles de administrador a una página de Facebook, consulta este artículo.
Una vez seleccionada la app con la que nos vamos a conectar a la API Graph y la página de Facebook a la que queremos acceder, ya tenemos disponible el token de página que necesitamos
En este punto es importante tener en cuenta que el token de acceso a página que buscamos se genera en el momento de la selección de app a conectar y página de acceso. No hay que pulsar el botón de “Generate Access Token”, ya que nos vuelve a la selección inicial de opciones. Para entender mejor el sistema de tokens de acceso puedes consultar la documentación oficial aquí.
Validación del token de seguridad
Podemos comprobar que hemos generado correctamente el token de acceso a página de la siguiente manera:
- Abrimos la herramienta de “depurador de identificadores de acceso”, en el menú superior de herramientas.
- En la página de depuración de identificadores, pegamos el token obtenido y pulsamos en el botón de “depurar”. De esta manera, Facebook nos muestra todas las propiedades del token generado.
Es muy importante comprobar que el tipo de token que tenemos es un “page token”. De otra manera, no podremos acceder desde KNIME a las estadísticas de página por la API Graph.

Paso 3: Extender duración del Token de Seguridad
El token de acceso a página generado en el paso anterior tiene una validez temporal de unas pocas horas. Pasado este tiempo, habría que generar un nuevo token. Ya que una de las ventajas de conectar Knime con Facebook Insights es automatizar tareas de extracción y análisis de datos, tener un acceso con tan poco tiempo de vigencia no es muy práctico.
Por suerte es fácil extender la vigencia de nuestro token de página. Basta con bajar a la parte final de la herramienta de “Depuración de Identificadores de Acceso” y pulsar el botón de “Ampliar Identificador de Acceso”. Para completar el proceso, un usuario con permisos de administración en la página tiene que validarlo.
Si todo ha ido bien, e introducimos el nuevo token en el depurador de accesos, nos debería salir la información sobre el tipo de token, identificadores de acceso y periodo de vigencia del token.
Paso.4: Conectar KNIME con Facebook API Graph
Ahora si podemos ponernos a trabajar con KNIME. Muy resumido, el proceso que realiza el workflow de ejemplo es el siguiente:
En primer lugar tenemos que construir la consulta que vamos a enviar a la API de Facebook. A continuación, vía Web Service, recogeremos los datos solicitados. Por último tenemos que colocar los datos de Facebook a nuestro gusto y empezar a analizar:

Lo primero que vamos a hacer es configurar la página que queremos conectar (nombre de la página en Facebook) y los permisos de acceso necesarios. Recordemos que el token de página es el “código seguro” que vincula nuestra app de Facebook Developers con el usuario que tiene permisos de acceso a la página de Facebook.
Query de API Graph básica, para comprobar permisos de acceso:

En el workflow utilizado para este artículo, el nodo “TEST CONNECTION” muestra el resultado devuelto por la query básica:

Si hemos obtenido un código de estado “200” (conexión correcta) de la API Graph, ya tenemos el acceso de KNIME a Facebook Insights preparado.
A continuación explicamos, a modo de ejemplo, cómo podemos obtener algunos KPIs de la página de Facebook conectada y transformar los datos para preparar el análisis.
Paso 5: Selección de datos sobre la API Graph de Facebook
Para llegar a las estadísticas de la página de Facebook que queremos analizar tenemos que elaborar una query que apunte al perímetro “Insights” dentro de la API de Facebook. Además, tenemos que especificar qué métricas queremos obtener y con qué ventana temporal.
A modo de ejemplo para este artículo, vamos a acceder a nuestra página de BaseCero Marketing en Facebook y recoger algunos KPIs básicos de la analítica de redes sociales. La consulta a la API tiene esta estructura:

En el workflow de ejemplo:

En este artículo utilizamos KNIME para acceder a la API de Facebook y consultar estadísticas. Con los permisos adecuados, este mismo proceso permite utilizar otros perímetros de Facebook con otras funcionalidades. Por ejemplo, podríamos programar publicaciones en la red social, consultar menciones o identificar a los usuarios con mayor interacción.
Paso 6: Datos de vuelta en KNIME
Si todo ha ido bien, los datos solicitados ya los tenemos almacenados en el nodo “GET Request”. A la consulta que hemos lanzado se le tienen que haber añadido los campos de “status”, “Content Type” y “Body”. Los indicadores que hemos solicitado están contenidos en este último campo “Body”. Este campo, en formato «.JSON», almacena los nombres, valores, descripciones… toda la información referida a las métricas seleccionadas:

Paso 7: Transformación final de datos y análisis
El último paso es preparar la información que tenemos en el campo “Body” a un formato más amigable para el análisis. Para ello utilizamos el nodo “JSON to Table”, que nos va a permitir traducir el formato .JSON a formato tabular, organizado en filas y columnas.

Esta parte del proceso es solo un ejemplo. Las transformaciones de datos y procesos intermedios seguro que se pueden optimizar. Por ello, os animamos a descargar el workflow, al final del artículo, y probar diferentes configuraciones.
Después de ejecutar el nodo, los datos almacenados en el campo “Body” se codifican como columnas diferentes, teniendo el aspecto de la siguiente tabla:

En el workflow de ejemplo se ha realizado la transformación de datos en el metanodo «DATA PROCESS»:

Explicación del proceso de transformación de datos aplicado en el metanodo:
En primer lugar, el metanodo “DATA PROCESS” contiene la transformación de ejemplo que hemos realizado para este artículo. Partiendo del nodo “JSON to table”, damos el formato adecuado para el análisis a los datos provenientes de Facebook Insights.

A continuación utilizamos un loop para procesar cada KPI que hemos extraído de la API Graph de Facebook. Además, este paso nos permite procesar de forma automática la información proveniente de Facebook (en el metanodo “JSON TABS”.

Por último, los datos obtenidos a la salida del proceso tienen un formato mas amigable para su análisis e interpretación.

Después de ejecutar el proceso, el formato de datos tiene esta apariencia:

Como ejemplo de aplicación de este proceso de conexión de KNIME con Facebook insights, podemos utilizar estos datos para monitorizar KPIs básicos de la página de Facebook que hemos conectado. Para ello hemos seleccionado el alcance de la página y el número de usuarios que interactúan:

Las utilidades que se le puede dar a la conexión de KNIME con Facebook Insights son tantas como objetivos de análisis y proyectos a monitorizar que tengamos.
Desde BaseCero Marketing, este tipo de integraciones de KNIME con canales digitales, nos permiten analizar el desarrollo de la estrategia digital de nuestros clientes.
Una vez realizado el proceso de permisos en Facebook API Graph, podemos controlar y modelizar los resultados sobre la página, las publicaciones y las campañas SMM en marcha.
En resumen, con KNIME podemos desarrollar y automatizar nuestras propias herramientas de Social Listening y de analítica digital en general.
Esperamos que este artículo haya sido de ayuda, especialmente para aquellos que halláis llegado hasta aquí 😉
Os dejamos el workflow que hemos utilizado en el proceso de conectar KNIME con Facebook, listo para descargar y usarse. Recordad que, para que funcione con vuestras propias credenciales, tendréis que introducir el Token de Página y el nombre de la página a la que se quiere acceder.
Os esperamos en los comentarios!