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

Construyendo con la API de Twitter: repitiendo tweets desde un grupo

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Building With the Twitter API.
Building With the Twitter API: Tweet Storms
Building With the Twitter API: Creating Friends to Follow

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

Este tutorial forma parte de una serie relacionada con la API de Twitter. Puede encontrar el tutorial original de Birdcage Twitter aquí o seguir mi página de autor para mantenerse al día con las últimas adiciones a la serie. Este tutorial en particular se basa en Birdcage y los modelos de datos y el código de la anterior tutorial tweet storm.

Si es un creador como yo, y a menudo utiliza Twitter para compartir detalles sobre sus creaciones. Y tiene más que decir de lo que puede caber en 140 caracteres, y la mayoría de sus seguidores ni siquiera ven cada tweet individual. Incluso si ven algo que has publicado, que podrían darle favorito y olvidarlo. Es útil tener un servicio que comparte regularmente diferentes aspectos de un anuncio suyo. La naturaleza del Twitter Stream hace que la repetición sea útil, dentro de la razón; exagerar es spam y molesto.

Este tutorial se basa en mi anterior artículo de tweet storm para mostrarle cómo crear un servicio que publica una actualización de estado seleccionada al azar sobre su trabajo de forma recurrente. Esto automatiza la tarea de repetir y crear variaciones en el tiempo para aumentar la probabilidad de que sus seguidores de Twitter se involucren con su contenido.

Tenga en cuenta que la API de Twitter tiene límites en contenido repetitivo. Tendrá más éxito si ofrece una amplia variedad de variaciones y ejecuta el servicio en una cuenta que también se utiliza manualmente para compartir otro contenido. Twitter probablemente rechazará los tweets repetitivos de los bots de marketing puros—y es probable que se encuentre con esto durante las pruebas.

Requisitos de la característica

Los requisitos básicos para nuestra característica son los siguientes:

  • Permitir que el usuario escriba y almacene un "montón" de tweets dentro de un grupo.
  • De manera recurrente, seleccionar aleatoriamente un tweet del grupo para publicarlo en nuestra cuenta.
  • Publique repetidamente estos artículos en intervalos configurables por el usuario con un cambio de tiempo aleatorio.
  • Permitir al usuario establecer un número máximo de recurrencias, por ejemplo: 100.
  • Permitir al usuario reiniciar grupos para reiniciar la repetición.

Basándose en la infraestructura para los grupos que hemos creado en el tutorial tweet storm, sólo se requiere una modesta cantidad de código nuevo adicional para tweets recurrentes.

El modelo de la base de datos

Usaremos la migración para crear la tabla Group, que es ligeramente diferente de la utilizada en el tutorial de tweet storm:

El código siguiente crea el esquema. Tenga en cuenta la relación de clave externa para vincular el grupo a una cuenta de Twitter específica:

Los nuevos campos incluyen next_publish_time, interval, interval_random, max_repeats y status.

También usaremos la misma tabla relacional llamada GroupStatus que rastrea los tweets de estado dentro de cada grupo:

Creando el Código

Utilice el tutorial tweet storm para ver cómo usar Yi's Gii para crear el código para el controlador de grupo, así como los modelos para GroupStatus.

A continuación, se muestra el aspecto del formulario "Crear un grupo":

Create a new group for recurring tweets

Aquí está el código de vista para el formulario. Observe que hay jQuery que muestra y oculta los ajustes adicionales cuando el usuario selecciona un tipo de grupo recurrente (en contraposición a un grupo de tweet storm):

Esto es lo que parece la página del controlador índice de Group una vez que ha agregado algunos grupos:

Manage groups page

Este es el código que ejecuta la vista de índice. En primer lugar, la acción del índice del controlador Group:

A continuación, el código de vista de administrador, que utiliza el controlador Yii Gridview:

Puede acceder a la página de vista de grupo haciendo clic en el ícono de "lista" más a la izquierda para cualquier grupo individual. A partir de ahí, puede agregar tweets individuales:

Composing a future tweet for group recurring

El código para la composición es casi idéntico al del repositorio Birdcage. Una vez que haya añadido un puñado de tweets a su grupo, se verá algo como esto:

A Group of tweets for recurring

Cuanto más volumen y variedad de tweets pueda proporcionar, más probable será que pueda volver a publicar tweets automatizados sin tener que encontrar las limitaciones internas de Twitter en bots.

Los grupos recurrentes en realidad no comienzan a twittear hasta que los activen—observe las opciones del menú del lado derecho en la imagen anterior. Los grupos recurrentes se ejecutan hasta que el número de etapas alcanza el número máximo de tweets publicados. El usuario también puede restablecer un grupo para iniciar el proceso.

Aquí está el código para las operaciones de activación y restablecimiento:

Publicar tweets recurrentes

El método índice de DaemonController es llamado por cron. Este llama al método processRecurring del modelo Group. Esto se ejecuta a través de cada cuenta buscando grupos que están atrasados.

Entonces, llamamos publishRecurring. Utilizamos los ámbitos nombrados para buscar grupos recurrentes cuya next_publish_time está atrasada. Procesamos por cuenta para minimizar el número de conexiones de Twitter de OAuth necesarias. Los alcances se muestran más adelante.

Aquí están los scopes de ActiveRecord que utilizamos para encontrar los grupos atrasados:

Cuando encontramos un grupo que necesita ser actualizado, usamos este código para seleccionar aleatoriamente un tweet y actualizar el next_publish_time:

Calculamos la recurrencia combinando el intervalo de retardo y un desplazamiento de tiempo aleatorio que ayuda a que los tweets aparezcan en diferentes zonas horarias y períodos ligeramente diferentes para llegar a diferentes usuarios:

Los resultados publicados con el tiempo se verán así:

The results of recurring group tweets

Mejoras futuras

Es posible que desee igualar la distribución de los tweets registrando la frecuencia de cada uno se utiliza y elegir entre los elementos menos repetidos con cada iteración.

También puede permitir que los grupos tengan un sufijo de hashtags que pueden seleccionarse aleatoriamente para variar el contenido cuando publica los tweets.

Para concluir

Espero que hayas encontrado esto interesante y útil. Una vez más, puede encontrar el tutorial original de Birdcage Twitter aquí o seguir mi página de autor para mantenerse al día con las últimas publicaciones de la serie de la API de Twitter.

Por favor, siéntase libre de publicar sus propias correcciones, preguntas y comentarios a continuación. Estoy especialmente interesado en sus mejoras. Intento mantenerme comprometido con el hilo de discusión. También puede contactarme en Twitter @reifman o enviarme un correo electrónico directamente.

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.