¿Cómo conectarnos a Twitter y enviar tweets con PHP?

02-06-2014 - Andrés Cruz

¿Cómo conectarnos a Twitter y enviar tweets con PHP?

Una de las cosas que resulta problemático cuando intentas compartir constantemente contenido por Twitter con el objetivo de llegar a todos los seguidores de la cuenta, es el de enviar o publicar tweets cada cierto tiempo y de manera constante promocionando nuestro trabajo; hay servicios como HootSuite y TweetDeck que permiten programar los tweets; el problema con esto se debe hacer uno a uno todos los días y los 365 días del año; algo que resulta de lo las molesto y repetitivo y sobre todo si no dispones de mucho tiempo para hacer esta labor todos los días.

Las librerías PHP para Twitter

Con el surgimiento de las librerías PHP para Twitter podemos olvidarnos de este dolor de cabeza; en este artículo veremos una de las muchas librerías de Twitter para PHP que existen; twitter-api-php permite conectar una aplicación escrita en PHP con la API de Twitter (que para el momento en que se escribió este artículo era la v1.1) y de esta forma poder realizar muchas tareas u operaciones (depente de que es lo queremos hacer).

Obtener la información del portal de Twitter

Básicamente consiste en registrar una aplicación en el portal de desarrolladores de Twitter, obtener la data nesesaria de esta aplicación registrada en Twitter y luego utilizarla en la aplicación PHP (que vamos a crear en este artículo); veamos:

Creando una aplicación en el portal de desarrolladores de Twitter

Lo primero que debemos hacer es crear una aplicación en el portal de desarrolladores de Twitter; nos toparemos con una pantalla de aspecto similar a la siguiente:

portal de desarrolladores de twitter

Iniciamos sección y click Developers y en la opción Documentation del menu emergente:

portal de desarrolladores de twitter - mis aplicaciones

En el menú lateral, presionamos sobre Manage My Apps:

portal de desarrolladores de twitter - mis aplicaciones - manage my apps

Click en el boton create New App.

portal de desarrolladores de twitter - crear una aplicación

Solo rellenamos los campos obligatorios (representados con un *):

portal de desarrolladores de twitter - crear una aplicación

Aceptamos las condiciones y presionamos en Create your Twitter application:

portal de desarrolladores de twitter - condiciones para crear una aplicación

¡Felicidades!, acabas de crear su primera aplicación para Twitter.

Configurando la aplicación para enviar tweets

En este punto, la aplicación ya ha sido creada; el siguiente paso consiste en posibilitar a la aplicación para enviar tweets; click en el tab Permissions:

portal de desarrolladores de twitter- permisos de una aplicación

Read and Write en el radio button; de esta forma será posible enviar tweets (Write) desde la aplicación PHP:

portal de desarrolladores de twitter - permisos de una aplicación (leer y escribir)

Click en el tab "API Keys" (1) y click en el botón Create my access token (2) probablemente debas de esperar unos escasos minutos para que sean generados los tokens de acceso:

portal de desarrolladores de twitter - tokens de acceso

Tokens de acceso y las APIs keys

El objetivo de completar los pasos anteriores es para obtener los tokens de acceso y las APIs keys, necesarios para poder conectar la aplicación PHP a la aplicación creada en Twitter y vinculada a nuestra cuenta de Twitter (que será la que envíe los tweets); tras unos breves momentos, veremos una pantalla como esta, con los tokens de acceso y las APIs keys:

Desarrollando la aplicación para PHP con twitter-api-php

Usaremos la librerías twitter-api-php para conectarnos a nuestra aplicación creada en el portal de desarrolladores de Twitter y asi poder enviar o publicar nuestros primeros tweets.

El código PHP para enviar tweets

Finalmente presentamos todo el código de nuestro tutorial para realizar tantas publicaciones en Twitter como queramos:


require 'TwitterAPIExchange.php';

// array de acceso
$settings = array(
	'oauth_access_token' => 'mi-token-acceso',
	'oauth_access_token_secret' => 'mi-token-acceso-secreto',
	'consumer_key' => 'mi-api-key',
	'consumer_secret' => 'mi-api-key-secreta',
);

// url
$url = "https://api.twitter.com/1.1/statuses/update.json";

// tipo de metodo
$requestMethod = 'POST';

//tweet
$postfields = array('status' => 'Mi tweet enviado desde PHP');

// instancia de la conexion con twitter
$twitter = new TwitterAPIExchange ($settings);

// enviamos el tweet
$response = $twitter->buildOauth($url, $requestMethod)
					->setPostfields($postfields)
					->performRequest();

Analizando el código PHP anterior...

1

Primero es incluido la clase que permitirá conectar a la API de Twitter; en específico, la aplicación creada anteriormente; la misma se puedes descargar desde la cuenta de GitHub del desarrollador de la clase:

require 'TwitterAPIExchange.php';
2

Creamos la conexión con la aplicación creada en Twitter pasándole los tokens de acceso y las APIs keys:

$settings = array(
	'oauth_access_token' => 'mi-token-acceso',
	'oauth_access_token_secret' => 'mi-token-acceso-secreto',
	'consumer_key' => 'mi-api-key',
	'consumer_secret' => 'mi-api-key-secreta',
);
3

Para obtener la URL tenemos que ir a la Documentación de Twitter en el portal de desarrolladores de Twitter; click en la opción del menu principal Documentation >> REST API; aqui podras encontrar todos los recursos de acceso a la API de Twitter hasta el momento; tweets, Timelines son algunos de ellos; el que nos interesa es el que nos da la posibilidad de enviar un tweet: Tweets >> POST statuses/update.

Aquí podrás encontrar:

  • La descripción.
  • La URL de acceso del recurso.
  • Los parámetros del recurso.

entre otros; nos interesa tomar la URL:

$url = "https://api.twitter.com/1.1/statuses/update.json";
4

Y el método:

$requestMethod = 'POST';
4

Creamos la instancia de la conexión

$twitter = new TwitterAPIExchange ($settings);
5

Por último enviamos un tweet.

// enviamos el tweet
$response = $twitter->buildOauth($url, $requestMethod)
					->setPostfields($postfields)
					->performRequest();
Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.