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

Construyendo con la API de Twitter: Primeros pasos

by
Difficulty:AdvancedLength:LongLanguages:
This post is part of a series called Building With the Twitter API.
Building With the Twitter API: OAuth, Reading and Posting

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

Final product imageFinal product imageFinal product image
What You'll Be Creating

Comenzar con la API de Twitter puede parecer un poco complicado, pero en realidad es bastante sencillo. Existen varias bibliotecas para lenguajes comunes que facilitan el proceso. La documentación de la API de Twitter también ha mejorado mucho con el tiempo.

En marzo de 2013, Twitter comenzó a requerir OAuth para todas las sesiones de la API, y eso ha llevado a mejoras para los usuarios y desarrolladores en general. La plataforma autenticada segura de OAuth ha ayudado a proteger la privacidad del usuario mientras mejora el seguimiento; Esto a su vez ha permitido a la compañía aumentar los límites para los desarrolladores en las llamadas de API individuales.

Esta serie consta de tres partes. La primera parte abarcará:

  • Una introducción a la API de Twitter
  • Creación de un esquema de base de datos para Twitter
  • Construcción de una aplicación PHP en el marco Yii para trabajar con Twitter

Birdcage, nuestra aplicación básica de Yii Twitter utilizada en este tutorial, está disponible para usted a través de código abierto. Si desea obtener más información sobre Yii, consulte Introducción al Framework Yii.

La segunda parte de esta serie cubrirá:

  • Autenticación con Twitter a través de OAuth
  • Procesamiento de los tweets entrantes en segundo plano mediante la API REST
  • Publicar tweets

La tercera parte cubrirá el uso de la API streaming de Twitter en tiempo real y la implementación de Phirehose. Mientras que la parte dos procesa los tweets utilizando la API REST, la tercera parte describirá cómo crear una conexión permanente con el flujo de datos de Twitter. Esto puede ser un tema nuevo para muchos desarrolladores de PHP.

Introducción a la API de Twitter

En su mayor parte, esta serie se centrará en tres partes de la plataforma de Twitter:

  1. Autenticación OAuth
  2. La API REST
  3. La API Streaming

Puede leer la documentación de la API de Twitter aquí.

Autenticación OAuth

A partir de la versión 1.1, la API de Twitter ahora requiere autenticación OAuth, ya sea autenticación de aplicación única o autenticación de usuario de aplicación. Esta última requiere que tu usuario de Twitter haga clic en el sitio web de Twitter, iniciar sesión con sus credenciales y luego regresar a tu sitio. La autenticación de usuario de aplicación es necesaria para muchas llamadas API específicas del usuario.

En otras palabras, cuando empiece a acceder a la API de Twitter en nombre de un usuario, su usuario será dirigido a Twitter para autorizar su aplicación. Twitter devolverá tokens que no caducarán hasta que el usuario los revoque. Y utilizarás estos tokens para autenticar sus llamadas en nombre de este usuario.

La API REST

La forma más común de acceder a los datos de Twitter es a través de la API REST. Usando los tokens seguros obtenidos vía OAuth, su aplicación hace peticiones a Twitter para datos específicos, p. La línea de tiempo de inicio del usuario o sus propios estados, o una solicitud para publicar un tweet para un usuario específico.

Using the REST API with TwitterUsing the REST API with TwitterUsing the REST API with Twitter

La API REST debe satisfacer las necesidades de la mayoría de los programadores de aplicaciones de Twitter.

La API Streaming

La API Streaming de Twitter le permite recibir tweets y notificaciones en tiempo real desde Twitter. Sin embargo, requiere un alto rendimiento, persistente, siempre en la conexión entre su servidor y Twitter.

Afortunadamente, hay una gran biblioteca de código abierto llamada Phirehose por Fenn Bailey que implementa la mayoría de los requisitos de API de streaming de Twitter. Revisaremos cómo configurar Phirehose y adaptarlo a su aplicación en la parte tres de este tutorial.

Hay tres variaciones de la API Streaming de Twitter:

  1. La Stream pública. Esto permite que su aplicación supervise datos públicos en Twitter, como tweets públicos, filtros de hashtag, etc.
  2. El Stream usuario. Esto le permite realizar un seguimiento del flujo de tweets de un usuario en tiempo real. La tercera parte de este tutorial se centrará en el flujo de usuarios.
  3. Streams de sitios (requiere aprobación previa de Twitter). Los flujos de sitio permiten que su aplicación supervise los feeds de Twitter en tiempo real para un gran número de usuarios.

El trabajo de su implementación de streaming es registrar los eventos entrantes lo más rápido posible y procesarlos en segundo plano usando la API REST como sea necesario para recolectar datos más profundos. Twitter a veces llama a esta reunión de datos más profundos sobre los eventos "hidratacion".

El uso de la API REST está sujeto a varios límites de velocidad por parte de Twitter. Es importante ser un usuario responsable de la API de Twitter planificando límites a su actividad dentro de su aplicación y supervisando las respuestas de límite de tasa API. La API de streaming no tiene límites de velocidad ya que los datos se envían a su servidor a medida que aparecen.

Creación del esquema de base de datos para la API de Twitter

Si bien Twitter desde la distancia parece simple, en realidad es un flujo de datos muy profundo y complejo, incluyendo la creciente cronología, las relaciones entre los usuarios, menciones, notificaciones, favoritos, listas, geolocalización, multimedia, lugares, etc.

Como desarrollador tiene que decidir cuál de estos datos es más importante para su aplicación y almacenarla en su propia base de datos. Un enfoque minimalista puede servir bien. La API de Twitter es lo suficientemente flexible como para poder retroceder y expandir (o hidratar) los datos relacionados con los eventos que almacena.

Birdcage es una aplicación gratuita, de código abierto, basada en Yii que implementa el marco de API de Twitter para los propósitos de este tutorial. Si no está familiarizado con Yii, lea mi Introducción al Framework Yii. Incluso si no está familiarizado con Yii, los segmentos de código PHP individuales en este tutorial deben ser bastante fáciles de seguir.

Si desea ver una implementación de API de Twitter en PHP básico, echa un vistazo al 140Dev de Adam Greene. Ha hecho un gran trabajo proporcionando una plataforma básica para el acceso a la API de Twitter. Su libro Twitter API Engagement Programming tiene una toma creativa en el uso de la API de Twitter para construir orgánicamente su influencia en Twitter.

Uno de los beneficios de Birdcage y el código del Framework Yii es que podemos usar el componente scaffolding de Yii, Gii, para generar una interfaz de usuario web para la aplicación básica en cuestión de minutos, algo que no se puede hacer en PHP básico.

Como una aplicación Yii, Birdcage utiliza migraciones de bases de datos ActiveRecord para crear su base de datos. Las migraciones de bases de datos hacen posible construir y extender programaticamente nuestro esquema. Esto es especialmente útil si implementas un consumo minimalista de la API de Twitter y más tarde elige expandir lo que recoges.

Le explicaré varios ejemplos de cómo construir el esquema de base de datos en Yii y el poder de su constructor de scaffolding basado en la web, Gii.

Si desea probar el código de Birdcage por su cuenta, visite mi sitio para obtener una descripción completa de las instrucciones de instalación.

En primer lugar, crearemos una tabla de cuentas para almacenar los símbolos y secretos de OAuth de Twitter para las cuentas en las que deseamos iniciar sesión. Estas cuentas están vinculadas al usuario registrado en la tabla user por nuestro user_id interno.

Desde la línea de comandos, le diremos a Yii que cree una nueva migración de tabla para cuentas de Twitter: ./app/protected/yiic migrate create create_account_table.

Completaremos la migración manualmente de la siguiente manera:

Para que Yii ejecute la migración que construirá la tabla SQL, lo haremos: ./app/protected/yiic migrate up.

Verás algo como esto:

Example of Yii Migration ToolExample of Yii Migration ToolExample of Yii Migration Tool

Podemos usar el generador de scaffolding basado en web Gii, de Yii, para construir nuestros controladores, vistas, modelo para la base de datos.

Gii - the Yii Code GeneratorGii - the Yii Code GeneratorGii - the Yii Code Generator

En mi entorno de desarrollo, apunto mi navegador web a localhost:8888/twitter/app/gii, escriba mi contraseña Gii (almacenada en mi archivo twitter.ini) y elija Model Generator:

Using Gii to Build Our Model CodeUsing Gii to Build Our Model CodeUsing Gii to Build Our Model Code

Sólo toma un segundo y debe mostrar este mensaje de éxito:

Gii Model Code Successfully GeneratedGii Model Code Successfully GeneratedGii Model Code Successfully Generated

El código modelo que Gii genera puede ser utilizado para construir una variedad de métodos relacionados con la tabla Account. Pero Gii también puede generar los inicios de la interfaz de usuario web para administrar cuentas de Twitter.

Haga clic en Bootstrap Generator, especifique el modelo Account y Gii construirá el scaffolding para su interfaz de usuario de la cuenta:

Using the Gii Bootstrap Generator for Web ScaffoldingUsing the Gii Bootstrap Generator for Web ScaffoldingUsing the Gii Bootstrap Generator for Web Scaffolding

El código resultante crea una interfaz de usuario de controlador de vista de modelo predeterminada que se ve así:

Gii Default ControllerGii Default ControllerGii Default Controller

El uso de Yii Active Record Migrations y Gii es un ahorrador de tiempo extremadamente potente para construir una interfaz de usuario web básica. Una vez que el código scaffolding predeterminado está en su lugar, es fácil personalizarlo y extenderlo.

A continuación, crearemos las tablas de base de datos para almacenar datos de Twitter, incluyendo nuestras tablas Twitter_User y Tweet. Aquí está la tabla Twitter_User:

Aquí está la tabla de Twitter:

Observe que usamos una relación de clave foranea en la tabla TwitterUser. Gii inteligentemente construye relaciones por nosotros en el modelo de Tweet:

Yii Active Record entonces automáticamente gestiona las combinaciones para nosotros. Por lo tanto, puede referenciar las propiedades de TwitterUser en sus consultas con código como echo $tweet->twitterUser->profile_image_url.

En general, Birdcage se piensa como un marco simple que puede que amplíe en su propia cuenta. No he hecho grandes intentos aquí para minimizar el espacio de almacenamiento basado en las definiciones de tamaño de Twitter o para optimizar las relaciones dentro del esquema. Lo diseñé principalmente para uso personal.

Twitter prepara los tweets en lo que llama entidades, que ayudan a filtrar metadatos para usted. Estos se dividen en menciones, URL y Hashtags.

Menciones

Cuando los tweets mencionan a otros usuarios, por ejemplo: @tommcfarlin, Twitter proporciona metadatos que describen esas menciones. Aquí está el esquema que usaremos para almacenarlos:

URLs

Siempre que los tweets incluyan enlaces, Twitter proporciona metadatos listándolos. Este es el esquema que usaremos para almacenar las URL incluidas en los tweets:

Hashtags

Siempre que los tweets incluyan hashtags, p. #php, Twitter proporciona metadatos que los describen. Este es el esquema que usaremos para almacenar los hashtags incluidos en los tweets:

Estas migraciones construyen las tablas principales con las que almacenaremos datos de la API de Twitter.

En el código Birdcage, verá que hay una variedad de otras migraciones también; La mayoría de estos apoyan la aplicación más amplia.

Construcción de la aplicación Birdcage

Tendrá que registrar una aplicación con Twitter para obtener las primeras claves de la aplicación OAuth. Visite el sitio para desarrolladores de Twitter y haga clic en Administrar sus aplicaciones. Haga clic en Crear nuevas aplicaciones. Yo llame al mío el Twitter Framework for Yii:

Create an Application for the Twitter API Create an Application for the Twitter API Create an Application for the Twitter API

La URL de devolución de llamada para utilizar Birdcage debe ser http://example.com/twitter/callback. Esta es la dirección a la que Twitter devolverá las solicitudes de OAuth. También es la dirección en Birdcage de nuestro controlador de Twitter para llamadas API.

Durante el proceso de creación, tendrá que configurar los permisos de la aplicación (leer y escribir para Birdcage) y tomar notas de la aplicación OAuth clave y secreto:

Twitter API Application PermissionsTwitter API Application PermissionsTwitter API Application Permissions

Esto es lo que aparecerá la página de claves API. La clave API principal y el secreto serán necesarios para configurar Birdcage inicialmente:

Twitter API Application KeysTwitter API Application KeysTwitter API Application Keys

Una vez que hayas añadido la aplicación, la verás en el menú Aplicación de Twitter:

Manage Your Twitter AppsManage Your Twitter AppsManage Your Twitter Apps

Una vez que instale el código, necesitará inicializar la base de datos MySQL ejecutando las migraciones. Hago esto en dos pasos.

En primer lugar, ejecuto la migración Yii-User. Esta es una extensión para Yii que gestiona la mayoría de mis necesidades de inicio de sesión y registro de usuario:

./app/protected/yiic migrate --migrationPath=application.modules.user.migrations

La migración le pedirá que cree credenciales para su cuenta de usuario principal para la aplicación web:

Esta es la cuenta que utilizará para iniciar sesión en la aplicación web Birdcage, no las credenciales de su cuenta de Twitter.

Luego, ejecuto el resto de las migraciones: ./app/protected/yiic up.

Una vez que configure Birdcage, visite su sitio en su navegador web, por ejemplo: http://birdcage.example.com.

The BirdCage Twitter API Application Home PageThe BirdCage Twitter API Application Home PageThe BirdCage Twitter API Application Home Page

Una vez que inicie sesión, le pedirá que ingrese su aplicación Claves OAuth y dirección para el controlador de Twitter, p. http://example.com/twitter (sólo el controlador, no la devolución de llamada) mostrado en las imágenes anteriores:

The BirdCage Settings ScreenThe BirdCage Settings ScreenThe BirdCage Settings Screen

Ahora, estamos listos para hacer cosas interesantes.

Conclusión

Estén atentos para la segunda parte de este tutorial. La segunda parte cubre:

  1. Autenticación de usuario OAuth
  2. Procesamiento de tweets en segundo plano
  3. Publicar en Twitter

Luego, en la tercera parte, veremos el uso de la API de streaming de Twitter y la implementación de código abierto de Phirehose. Mientras que la parte dos procesa los tweets usando la API REST, la tercera parte describirá cómo construir una conexión siempre con el flujo de datos de Twitter.

Espero que hayas encontrado esto útil. Envíe sus comentarios, correcciones o ideas adicionales a continuación. Puedes navegar por mis otros tutoriales de Tuts+ en mi página de autor o seguirme en Twitter @reifman.

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.