SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
Redes Sociales
Pablo Gómez Cruañes
pgomez@SolidQ.com
Daniel Seara
dseara@SolidQ.com
¿Qué vemos?
 Motivación
 Las redes sociales son otro camino para la interacción con los clientes
 La naturaleza de esas interacciones aporta información valiosa
 Las redes sociales son heterogéneas y manejan los datos de manera distinta
 Arquitectura para resolver problemas
 Donde separamos en partes, para poder interactuar debidamente con las redes
sociales
 Modelo de generalización de componentes
 Donde decidimos separar para vencer
 Demo
 …o sea, demo
Por qué no usar el conector de Power BI
 Alcance
 Maneja sólo algunos métodos de la API
 Autenticación
 Sólo permite autenticarse como un usuario
 No multicuenta, no autenticación de página
 Puede no existir conector para cierta red (twitter)
 Es suficiente en algunos casos … en otros no
Motivación
(Donde contamos que diferente que viene la información
desde cada red Social)
Rest API
• Peticiones HTTP (GET, POST, PUT, DELETE)
• Manejo de URIs
• Respuestas en JSON
• Distintos métodos de autenticación
Oauth, oAuth2, … #@~|
 Convengamos, la identificación es un tema
 Y por eso se torna estricta
 Hay casos, de llamadas re entrantes para confirmar identidad
del solicitante
 Te pido permiso
 Me mandas algo para ver si yo soy quien digo ser
 Con ese algo voy a otro lado a ver si me lo aceptas
 Me das un identificador de acceso
 … y nos hace falta un sitio público
Facebook
 Dos fuentes de datos principales:
 Feed de página:
 Lista de las publicaciones de página y de otros en la página.
 Cada publicación contiene información relacionada con las interacciones
 Hay que pedir explícitamente la información de un post
 Facebook insights
 Datos agregados de la página
 Usuarios por país
 Usuarios por género / Edad
Facebook
 Autenticación: Oauth2
 Requiere que el usuario otorgue permiso a la app
 Requiere intervención del usuario (popup)
 Distintos tipos de token (con distintos niveles de acceso)
 Autenticación de usuario
 Autenticación de página
 Autenticación de app
Twitter
 User_timeline: Tweets de la cronología del usuario
 Tweets anidados (dentro de un tweet está su retweet)
 Siempre viene toda la información disponible del tweet
 Tweet_search
 En los últimos cambios de la API ha pasado a ser de pago (o estar
limitado en la versión gratuita)
 Permite obtener los tweets en los que se nombró a un usuario, o los
que contienen ciertos términos
 Estructura igual que la cronología
Twitter
 Autenticación: Oauth1
 Además, la mayoría de datos son accesibles con token de
app
Arquitectura para resolver problemas
(Donde separamos en partes, para poder interactuar
debidamente con las redes sociales
… o la lucha por la correcta identificación )
Arquitectura para resolver problemas
BD
WebAPP
ReadConfig()
Lee de la bd la
info de la red
social y la
guarda en un
SocialNetwork
Se crea un
"manejador de
API" a partir
del
Socialnetwork:
Processor
ProcessNewInfo()
Llama a la API, trae
los datos, los
almacena en Azure
Storage
API
JSON Azure Storage
Analyzer
Se crea un
“manejador de
destinos” que
almacenará la
información
ProcessContent()
Trae los datos
del azure
storage y los
almacena en el
destino
Destino
Diseño completo
Modelo de generalización de componentes
(Donde decidimos separar para vencer)
Modelo de generalización de componentes
Para cada red social:
 Extractor:
 Auth: Manejador de autenticación
 Service: Funciones básicas, lenguaje “máquina”
 GetAsync(URL)
 Client: Funciones Complejas, lenguaje “humano”
 “Tráeme las 100 últimas publicaciones”
Modelo de generalización de componentes
Para cada red social y destino:
 Analizador:
 Obtiene el resultado de la extracción de Azure Storage
 Lo inserta en el destino
Diseño de captación de datos
 Extractores
Diseño de Captación de Datos
 Analizadores
Cliente web para lidiar con OAuth2
 … y de paso, exponer API para procesar
Y, ya que estábamos en esas
(Un modelo similar, para almacenar la información)
Diseño de Captación de Datos
 Almacenamiento
Diseño Generalizado
 Definir interfaces para usar desde las aplicaciones
 Componentes que implementan, con distintas acciones
específicas en cada caso
 Instanciación por parámetros
Diseño Generalizado (II)
public class StorageManager : IStore
{
IStore internalStorage = null;
public StorageManager(string storageType, string connectionString)
{
AssemblyName name = new AssemblyName("SolidQ." + storageType);
try
{
System.Reflection.Assembly ass = System.Reflection.Assembly.Load(name);
if (ass != null)
{
var type = ass.GetType(name.Name + ".Store");
internalStorage = Activator.CreateInstance(type, connectionString) as IStore;
}
}
catch (Exception ex)
{
throw ex;
}
}
Perspectiva de los datos
 Periodo de tiempo que descargamos
 Limitado por la API o por el tiempo que dedicamos al proceso
 Dada una perspectiva, traemos ese periodo
 Snapshot del estado de la red social
 Luego tenemos que mezclar con lo que ya había
Perspectiva de los datos (SQL)
 El proceso escribe la perspectiva en una table
 Se dispara un procedimiento almacenado que realiza el
merge
Perspectiva de los datos (JSON)
 Cada archivo se corresponde a una extracción
 Otro proceso tendrá que realizar el merge
Demo
En Acción
Preguntas

Weitere ähnliche Inhalte

Ähnlich wie Redes Sociales API Extractor

Novedades en BCS en SharePoint 2013
Novedades en BCS en SharePoint 2013Novedades en BCS en SharePoint 2013
Novedades en BCS en SharePoint 2013Juan Carlos Gonzalez
 
Appcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAppcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAlberto Ruibal
 
Cesnavarra 2008-boletín 5
Cesnavarra 2008-boletín 5Cesnavarra 2008-boletín 5
Cesnavarra 2008-boletín 5Cein
 
Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)Diego Vasco
 
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Miguel Ángel Sánchez Chordi
 
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Avanet
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSAmazon Web Services LATAM
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"www.encamina.com
 
Comenzando con los Servicios Móviles en AWS
Comenzando con los Servicios Móviles en AWSComenzando con los Servicios Móviles en AWS
Comenzando con los Servicios Móviles en AWSAmazon Web Services LATAM
 
Servicio web
Servicio web Servicio web
Servicio web Yael67
 
Taller de Diseño y Desarrollo de Aplicaciones para Twitter - Congreso Interne...
Taller de Diseño y Desarrollo de Aplicaciones para Twitter - Congreso Interne...Taller de Diseño y Desarrollo de Aplicaciones para Twitter - Congreso Interne...
Taller de Diseño y Desarrollo de Aplicaciones para Twitter - Congreso Interne...equipo24
 
Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4tantascosasquenose
 
Single Sign On Salesforce Developer Group
Single Sign On Salesforce Developer GroupSingle Sign On Salesforce Developer Group
Single Sign On Salesforce Developer GroupJuan Pedro Catalan
 

Ähnlich wie Redes Sociales API Extractor (20)

Seminario Twitter Dynamics
Seminario Twitter DynamicsSeminario Twitter Dynamics
Seminario Twitter Dynamics
 
Novedades en BCS en SharePoint 2013
Novedades en BCS en SharePoint 2013Novedades en BCS en SharePoint 2013
Novedades en BCS en SharePoint 2013
 
Appcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en AndroidAppcircus Academy: Integración de Social Media en Android
Appcircus Academy: Integración de Social Media en Android
 
Cesnavarra 2008-boletín 5
Cesnavarra 2008-boletín 5Cesnavarra 2008-boletín 5
Cesnavarra 2008-boletín 5
 
Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)Consumo de web service con volley (api rest)
Consumo de web service con volley (api rest)
 
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
 
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)
 
Web 2.0 Cio Brief Spanish
Web 2.0   Cio Brief   SpanishWeb 2.0   Cio Brief   Spanish
Web 2.0 Cio Brief Spanish
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWS
 
Entendiendo o auth
Entendiendo o authEntendiendo o auth
Entendiendo o auth
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"
 
Comenzando con los Servicios Móviles en AWS
Comenzando con los Servicios Móviles en AWSComenzando con los Servicios Móviles en AWS
Comenzando con los Servicios Móviles en AWS
 
Construyendo APIs Seguras y Escalables
Construyendo APIs Seguras y Escalables Construyendo APIs Seguras y Escalables
Construyendo APIs Seguras y Escalables
 
Servicio web
Servicio web Servicio web
Servicio web
 
Web 2.0 (odp)
Web 2.0 (odp)Web 2.0 (odp)
Web 2.0 (odp)
 
Taller de Diseño y Desarrollo de Aplicaciones para Twitter - Congreso Interne...
Taller de Diseño y Desarrollo de Aplicaciones para Twitter - Congreso Interne...Taller de Diseño y Desarrollo de Aplicaciones para Twitter - Congreso Interne...
Taller de Diseño y Desarrollo de Aplicaciones para Twitter - Congreso Interne...
 
Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4Curso basicoseguridadweb slideshare4
Curso basicoseguridadweb slideshare4
 
SimpleSAMLphp
SimpleSAMLphpSimpleSAMLphp
SimpleSAMLphp
 
Single Sign On Salesforce Developer Group
Single Sign On Salesforce Developer GroupSingle Sign On Salesforce Developer Group
Single Sign On Salesforce Developer Group
 
Windows azuremobileservices
Windows azuremobileservicesWindows azuremobileservices
Windows azuremobileservices
 

Mehr von SolidQ

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?SolidQ
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en LinuxSolidQ
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida realSolidQ
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízateSolidQ
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksSolidQ
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesSolidQ
 
R en relacional
R en relacionalR en relacional
R en relacionalSolidQ
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!SolidQ
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en AzureSolidQ
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018SolidQ
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018SolidQ
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018SolidQ
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018SolidQ
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...SolidQ
 
Novedades de SSAS 2017
Novedades de SSAS 2017Novedades de SSAS 2017
Novedades de SSAS 2017SolidQ
 

Mehr von SolidQ (20)

SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration ServicesSolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
SolidQ Summit 2018 - Qué necesita saber un DBA de Integration Services
 
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLSSolidQ Summit 2018 - Seguridad a nivel datos. RLS
SolidQ Summit 2018 - Seguridad a nivel datos. RLS
 
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
SolidQ Summit 2018 - Todo lo que un integrador de datos debería tener... y pa...
 
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
SolidQ Summit 2018 - ¿Dificultades gestionando relaciones muchos a muchos? De...
 
SolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantesSolidQ Summit 2018 - Report Server: Nuevos mutantes
SolidQ Summit 2018 - Report Server: Nuevos mutantes
 
Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?Cuando QueryStore no sirve, ¿qué opciones tenemos?
Cuando QueryStore no sirve, ¿qué opciones tenemos?
 
SQL Server 2017 en Linux
SQL Server 2017 en LinuxSQL Server 2017 en Linux
SQL Server 2017 en Linux
 
Columnstore en la vida real
Columnstore en la vida realColumnstore en la vida real
Columnstore en la vida real
 
PowerApprízate
PowerApprízatePowerApprízate
PowerApprízate
 
Jugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocksJugando a ser rico: Machine Learning para predicción de stocks
Jugando a ser rico: Machine Learning para predicción de stocks
 
Mantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para DummiesMantenimiento de SQL Server para Dummies
Mantenimiento de SQL Server para Dummies
 
R en relacional
R en relacionalR en relacional
R en relacional
 
Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!Cuando haces bot ya no hay stop!!
Cuando haces bot ya no hay stop!!
 
Arquitecturas lambda en Azure
Arquitecturas lambda en AzureArquitecturas lambda en Azure
Arquitecturas lambda en Azure
 
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
Bot Framework: otra manera de acceder a tus datos - SolidQ Summit 2018
 
BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018BIE2E en Azure - SolidQ Summit 2018
BIE2E en Azure - SolidQ Summit 2018
 
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
¿Qué viene GDPR? Mi SQL está preparado- SolidQ Summit 2018
 
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018Hilando fino en SSAS multidimensional - SolidQ Summit 2018
Hilando fino en SSAS multidimensional - SolidQ Summit 2018
 
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
Adaptive Query Processing: Mejoras en el motor de consulta de SQL Server 2017...
 
Novedades de SSAS 2017
Novedades de SSAS 2017Novedades de SSAS 2017
Novedades de SSAS 2017
 

Kürzlich hochgeladen

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Kürzlich hochgeladen (16)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Redes Sociales API Extractor

  • 1. Redes Sociales Pablo Gómez Cruañes pgomez@SolidQ.com Daniel Seara dseara@SolidQ.com
  • 2. ¿Qué vemos?  Motivación  Las redes sociales son otro camino para la interacción con los clientes  La naturaleza de esas interacciones aporta información valiosa  Las redes sociales son heterogéneas y manejan los datos de manera distinta  Arquitectura para resolver problemas  Donde separamos en partes, para poder interactuar debidamente con las redes sociales  Modelo de generalización de componentes  Donde decidimos separar para vencer  Demo  …o sea, demo
  • 3. Por qué no usar el conector de Power BI  Alcance  Maneja sólo algunos métodos de la API  Autenticación  Sólo permite autenticarse como un usuario  No multicuenta, no autenticación de página  Puede no existir conector para cierta red (twitter)  Es suficiente en algunos casos … en otros no
  • 4. Motivación (Donde contamos que diferente que viene la información desde cada red Social)
  • 5. Rest API • Peticiones HTTP (GET, POST, PUT, DELETE) • Manejo de URIs • Respuestas en JSON • Distintos métodos de autenticación
  • 6. Oauth, oAuth2, … #@~|  Convengamos, la identificación es un tema  Y por eso se torna estricta  Hay casos, de llamadas re entrantes para confirmar identidad del solicitante  Te pido permiso  Me mandas algo para ver si yo soy quien digo ser  Con ese algo voy a otro lado a ver si me lo aceptas  Me das un identificador de acceso  … y nos hace falta un sitio público
  • 7. Facebook  Dos fuentes de datos principales:  Feed de página:  Lista de las publicaciones de página y de otros en la página.  Cada publicación contiene información relacionada con las interacciones  Hay que pedir explícitamente la información de un post  Facebook insights  Datos agregados de la página  Usuarios por país  Usuarios por género / Edad
  • 8. Facebook  Autenticación: Oauth2  Requiere que el usuario otorgue permiso a la app  Requiere intervención del usuario (popup)  Distintos tipos de token (con distintos niveles de acceso)  Autenticación de usuario  Autenticación de página  Autenticación de app
  • 9. Twitter  User_timeline: Tweets de la cronología del usuario  Tweets anidados (dentro de un tweet está su retweet)  Siempre viene toda la información disponible del tweet  Tweet_search  En los últimos cambios de la API ha pasado a ser de pago (o estar limitado en la versión gratuita)  Permite obtener los tweets en los que se nombró a un usuario, o los que contienen ciertos términos  Estructura igual que la cronología
  • 10. Twitter  Autenticación: Oauth1  Además, la mayoría de datos son accesibles con token de app
  • 11. Arquitectura para resolver problemas (Donde separamos en partes, para poder interactuar debidamente con las redes sociales … o la lucha por la correcta identificación )
  • 12. Arquitectura para resolver problemas BD WebAPP ReadConfig() Lee de la bd la info de la red social y la guarda en un SocialNetwork Se crea un "manejador de API" a partir del Socialnetwork: Processor ProcessNewInfo() Llama a la API, trae los datos, los almacena en Azure Storage API JSON Azure Storage Analyzer Se crea un “manejador de destinos” que almacenará la información ProcessContent() Trae los datos del azure storage y los almacena en el destino Destino
  • 14. Modelo de generalización de componentes (Donde decidimos separar para vencer)
  • 15. Modelo de generalización de componentes Para cada red social:  Extractor:  Auth: Manejador de autenticación  Service: Funciones básicas, lenguaje “máquina”  GetAsync(URL)  Client: Funciones Complejas, lenguaje “humano”  “Tráeme las 100 últimas publicaciones”
  • 16. Modelo de generalización de componentes Para cada red social y destino:  Analizador:  Obtiene el resultado de la extracción de Azure Storage  Lo inserta en el destino
  • 17. Diseño de captación de datos  Extractores
  • 18. Diseño de Captación de Datos  Analizadores
  • 19. Cliente web para lidiar con OAuth2  … y de paso, exponer API para procesar
  • 20. Y, ya que estábamos en esas (Un modelo similar, para almacenar la información)
  • 21. Diseño de Captación de Datos  Almacenamiento
  • 22. Diseño Generalizado  Definir interfaces para usar desde las aplicaciones  Componentes que implementan, con distintas acciones específicas en cada caso  Instanciación por parámetros
  • 23. Diseño Generalizado (II) public class StorageManager : IStore { IStore internalStorage = null; public StorageManager(string storageType, string connectionString) { AssemblyName name = new AssemblyName("SolidQ." + storageType); try { System.Reflection.Assembly ass = System.Reflection.Assembly.Load(name); if (ass != null) { var type = ass.GetType(name.Name + ".Store"); internalStorage = Activator.CreateInstance(type, connectionString) as IStore; } } catch (Exception ex) { throw ex; } }
  • 24. Perspectiva de los datos  Periodo de tiempo que descargamos  Limitado por la API o por el tiempo que dedicamos al proceso  Dada una perspectiva, traemos ese periodo  Snapshot del estado de la red social  Luego tenemos que mezclar con lo que ya había
  • 25. Perspectiva de los datos (SQL)  El proceso escribe la perspectiva en una table  Se dispara un procedimiento almacenado que realiza el merge
  • 26. Perspectiva de los datos (JSON)  Cada archivo se corresponde a una extracción  Otro proceso tendrá que realizar el merge