Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Twitter
Code

Construyendo con la API de Twitter: analizando a sus seguidores

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Building With the Twitter API.
Building With the Twitter API: Creating Friends to Follow
Using the Twitter API to Tweet Repetitive Content

Spanish (Español) translation by Elías Nicolás (you can also view the original English article)

Final product image
What You'll Be Creating

Introducción

Bienvenido al último episodio de nuestra serie de Twitter API. En nuestro último episodio, construí Twixxr.com que le permitirá descubrir a mujeres influyentes en Twitter para que su cuenta las siga. Hoy, voy a centrarme en el interior y mirar a mis propios seguidores.

Aunque en realidad no uso Facebook desde 2013, he permanecido activo en Twitter—aun cuando bombearon mi feed con anuncios y me molestaron al intentar optimizarlo algorítmicamente.

Recientemente, fui verificado y comencé a sumar seguidores a un ritmo ligeramente más rápido. Tenía la esperanza de que podría ver más respuesta a mis tweets. En general, me he sorprendido de la poca respuesta que suele haber en Twitter para la persona promedio.

Building With the Twitter API reifman profile on twitter with verified checkmark

Tengo casi 1.900 seguidores, pero rara vez las personas comentan o retweet a cosas que creo que son importantes y de interés general. Por ejemplo, ni una sola persona compartió mi pieza sobre el fuerte repunte de los informes de violaciones en Seattle o el comentario sobre Bill Gates en su más escandalosa hipocresía.

Durante mucho tiempo he querido mirar más de cerca a mis seguidores de Twitter y responder a algunas preguntas: ¿Quién exactamente me está siguiendo? ¿Y por qué no son más interactivos? ¿Es posible que sólo el 10% de mis seguidores sean personas reales?

Twitter ha tenido problemas para encontrar un comprador, y tal vez esto tiene algo que ver con ello.

La API de Twitter es una buena herramienta para investigar esto. Sin embargo, tiene un montón de límites de velocidad que hacen que incluso algo tan simple como analizar a sus seguidores sea bastante complejo. En el episodio de hoy, te mostraré cómo trabajé con los límites de velocidad para evaluar y construir un marcador de mis seguidores.

Si tiene alguna pregunta o comentario, por favor, envíelos a continuación en los comentarios o en contacto conmigo en Twitter @reifman.

Analizar nuestros seguidores de Twitter

Building With the Twitter API Initial scoreboard

Justo arriba, puedes ver el marcador básico que he creado. El episodio de hoy se centrará principalmente en la infraestructura y el enfoque que tomé para crear esto. Espero tener la oportunidad de escribir más sobre cómo mejorar el mecanismo de puntuación.

Y sí, como se puede ver más arriba, el renombrado líder de los derechos de los homosexuales y el columnista de consejos sobre el sexo Dan Savage me sigue pero nunca retweet nada que comparto. Si hay tiempo hoy, analizaremos esto para responder preguntas importantes como: ¿es real, un bot, o simplemente esta siguiéndome para consejos personales de sexo? ¿Qué podemos aprender de su cuenta para determinar si es probable que alguna vez va interactuar conmigo en Twitter o, para el caso, cualquiera de mis otros seguidores?

El código del marcador es sobre todo un prototipo que he construido sobre el código de Twixxr del último episodio, pero no es una demo en linea para que la gente la utilice. La estoy compartiendo para que pueda aprender de él y pueda construir a partir de él.

Estos son los elementos básicos del código:

  • Crear la base de datos para almacenar mis seguidores y datos relacionados.
  • Descargar mis seguidores en páginas de 20 seguidores cada una.
  • Seguimiento de los cursores de páginas a medida que descarga 15 páginas de ventana en tasa limitada.
  • Almacenar datos recogidos sobre mis seguidores en la base de datos.
  • Construir un prototipo de algoritmo de puntuación para puntuar a todos los seguidores.
  • Construir una vista para navegar por el marcador.

Profundizar el código

Creación de las tablas para las migraciones de la base de datos

He creado tres tablas diferentes para almacenar todos los datos y me ayudan a trabajar con la limitación de velocidad de la API de Twitter. Si no está familiarizado con las migraciones de base de datos de Yii, consulte Cómo programar con Yii2: Trabajar con la base de datos y el registro activo.

Primero, Extendi la tabla de SocialProfile para registrar más datos de las cuentas del seguidor tales como si están verificados, su localización, y cuántos tweets tienen de favoritos:

Luego, construí una tabla de indexación llamada SocialFriend para realizar un seguimiento de seguidores para cuentas específicas. Si decido formalizar este servicio públicamente, lo necesitaré. Enlaza la tabla Usuario con los seguidores del usuario en la tabla SocialProfile.

A continuación, la API de Twitter requiere que busque las solicitudes de 20 seguidores a la vez. Para saber la página siguiente, tiene que seguir los cursores, esencialmente las etiquetas, que marcan la página siguiente a buscar.

Puesto que sólo se le permite hacer 15 solicitudes de seguidores cada 15 minutos, debe almacenar estos cursores en la base de datos. La tabla se llama SocialCursor:

Eventualmente, voy a crear las tareas cron para gestionar todo esto, pero para el prototipo de hoy, estoy ejecutando estas tareas a mano.

Recopilación de los seguidores y sus datos de cuenta

A continuación, creé un método de Twitter::getFollowers() para hacer la solicitud. Aquí están los fundamentos del código:

Obtiene el next_cursor y pide repetidamente los seguidores$followers = $this->connection->get("seguidores/lista",['cursor' => $next_cursor]) hasta que llegue a los límites de velocidad.

La salida se ve algo así como se ejecuta en cada página de 20 resultados:

Los datos son almacenados por los $sp->add($ user_id, $u); Métodos. El método SocialProfile::add() es una versión diferente del método fill() del tutorial de Twixxr. Almacena más datos y administra el índice de SocialFriend:

Está escrito para guardar nuevos registros o actualizar los registros antiguos para que en el futuro pueda rastrear los datos de su seguidor y actualizarlos regularmente, sobrescribiendo los datos antiguos.

Esta última sección al final asegura que hay un índice de SocialFriend entre la tabla User y la tabla SocialProfile.

Puntuando a los seguidores de Twitter

Building With the Twitter API - Accounts with huge numbers of friends unlikely to read my tweets

Tuve un muchas metas para mi puntuación de Twitter:

  • Elimine las cuentas que siguen a todos los que las siguen. Por ejemplo, tienen 12.548 seguidores y siguen 12.392 personas (ver arriba).
  • Eliminar cuentas después de más de 1.500 cuentas que es poco probable que vean lo que comparto. Por ejemplo, Dan Savage sigue a 1.536 personas.
  • Eliminar las cuentas que tienen muy pocos tweets o que siguen muy pocas cuentas, probablemente cuentas abandonadas.
  • Elimina las cuentas con pocos favoritos—estos son bots, probablemente, no usan realmente la aplicación.

Asimismo, quería destacar algunos aspectos positivos:

  • Cuentas Verificadas
  • Cuentas que tienen muchos seguidores
  • Cuentas que tienen menos de 1.000 personas que siguen—un punto atractivo para mí

Aquí hay un código básico aproximado de SocialProfile::score() que destaca algunos de los aspectos positivos:

He aquí un código que elimina algunas de las cuentas malas:

Obviamente, hay mucho para programar aquí y una variedad de maneras de mejorar esto. Espero tener la oportunidad de pasar más tiempo en esto.

A medida que el método se ejecuta, se ve así, pero actualiza la tabla SocialProfile con las puntuaciones a medida que funciona:

Visualización del marcador

La cuadrícula predeterminada de Yii hace que sea muy fácil mostrar la tabla de SocialProfile y personalizar las columnas del marcador.

Aquí está SocialProfileController::actionIndex():

Y aquí está la vista de cuadrícula personalizada:

Asi es lo como las mejores puntuaciones se ven con mi algoritmo inicial:

Building With the Twitter API - Top Scoring Accounts

Hay muchas maneras de mejorar y ajustar la puntuación. Espero poder modificarlo más.

Y hay más que me gustaría escribir código para y ampliar mi uso de la API, por ejemplo:

  • Utilizar el PHP gender para ayudar a eliminar a las empresas de las personas (las empresas no interactúan mucho).
  • Busque la frecuencia de los mensajes que las personas han hecho y la última vez que usaron Twitter.
  • Utilice la API de búsqueda de Twitter para ver qué seguidores han interactuado con mi contenido.
  • Proporcionar comentarios a la puntuación para hacerla mejor.

Mirando hacia el futuro

Espero que encuentre el enfoque de puntuación intrigante. Hay mucho más que se puede hacer para mejorar esto. Por favor, siéntase libre de modificarlo y publicar sus ideas a continuación.

Si tiene alguna pregunta o sugerencia, publiquela en los comentarios. Si quieres continuar con mis futuros tutoriales de Envato Tuts+ y otras series, visita mi página de instructor o sigue @reifman. Definitivamente revise mi serie de startup y el Meeting Planner.

Enlaces relacionados

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.