Crea tu propio complemento de Twitter personalizado para WordPress

Acabas de publicar una publicación increíble en tu blog de WordPress y te gustaría contarle a todo el mundo sobre eso. ¿Tienes una cuenta de twitter? Luego, desarrollemos un complemento que, cada vez que guardes una nueva publicación en WordPress, tuitea automáticamente, dejando que todos tus seguidores sepan que pueden encontrar algo nuevo en tu blog. Empecemos!


¿Por qué crear un complemento de Twitter desde cero??

Si bien hay muchos excelentes complementos gratuitos de Twitter, esta opinión de los autores dice que realmente no hay sustituto para saber cómo hacer esto por ti mismo. En muchos casos, si tiene algo muy específico en mente, también puede ser mucho más fácil escribir su propio complemento desde cero ... así que si está frustrado por intentar hackear / diseñar / configurar un complemento existente para trabaje en su sitio, esta podría ser la solución a sus dolores de cabeza!


Requerimientos

Para poder seguir este tutorial necesitas lo siguiente:

  • una instalación de sitio de WordPress
  • La clase de twitteroauth de Abraham Williams para manipular las acciones de twitter. Por el momento solo descargalo y guárdalo localmente.
  • Una cuenta de prueba de Twitter. (Si no desea enviar spam a todos sus seguidores con los mensajes de prueba que le enviaremos).

La clase de TwitterOAuth

El proceso de obtención y publicación de datos en Twitter requiere los siguientes pasos:

  • registro de una aplicación
  • autoriza tu solicitud
  • Obtención por datos de la API de Twitter.

Los pasos 2 y 3 anteriores pueden ser tediosos y pueden ser un tema para un tutorial completo. Por lo tanto, recomiendo usar una biblioteca que maneje esos pasos. El que más me gusta fue desarrollado por Abraham Williams. Es muy fácil de usar, el código es claro y fácil de entender y está disponible en github.

Usando este complemento, podemos deshacernos de los detalles de la conexión a Twitter y obtener datos de este ya que estas tareas se realizan en la clase TwitterOAuth.


Registrar una aplicación de Twitter

Como ya comentamos, el primer paso para implementar nuestro complemento es registrar una nueva aplicación de Twitter. Con esta aplicación obtendremos claves de acceso que nos permitirán obtener los datos de Twitter requeridos. Navegue en su navegador a la página de desarrolladores de Twitter e inicie sesión con su cuenta de usuario de prueba. Luego haga clic en el enlace "Crear una aplicación". Rellene el formulario con la información requerida (puede colocar un marcador de posición para el sitio web).

Es muy importante completar también el campo de URL de devolución de llamada, ya que dejarlo en blanco restringirá la aplicación del uso de devoluciones de llamada. De todos modos, no usaremos el valor ingresado en este archivo, sino uno configurado en el complemento de WordPress.

Acepte las reglas del desarrollador y complete la información de captcha, luego presione el botón "Crear su aplicación de Twitter". Serás redirigido a la página en la siguiente captura de pantalla:

Desplázate hasta la sección "Tu token de acceso" y presiona el botón "Crear mi token de acceso". Esta acción generará un token de acceso y un secreto de token de acceso que, junto con la clave del consumidor y el secreto del consumidor, se utilizan para iniciar sesión en Twitter y obtener autorización para realizar operaciones en los datos de Twitter..


Paso 0 burlándose de nuestra aplicación

Sé que estás ansioso por ensuciarte las manos escribiendo el complemento de WordPress. Pero antes, echemos un vistazo a cómo podemos usar la clase TwitterOAuth. Tómese su tiempo para estudiar su archivo de documentación y código en github. Después de eso, desarrollaremos juntos una pequeña aplicación de maqueta para ver si podemos usarla con éxito..

Los archivos más importantes de la biblioteca de Abraham son los que están en la carpeta twitteroauth. De hecho, esos son los únicos archivos que contienen la implementación de la biblioteca. El resto de los archivos son solo un ejemplo de cómo usar la clase en sí..

Estructura de la carpeta

Prepare una estructura de carpetas como la siguiente:

Como puede ver, para nuestra aplicación de maquetas, asumimos la estructura de todo el proyecto desde github. Lo modificaremos un poco, ya que no necesitamos implementar todas las acciones de la aplicación de demostración Abraham Williams..

El código para la aplicación de burla

Vamos a revisar lo que hemos modificado tomando los archivos uno por uno..

index.php

 / * Carga los archivos lib requeridos. * / require_once ('twitteroauth / twitteroauth.php'); require_once ('config.php'); / * Crear un objeto TwitterOauth con tokens de consumidor / usuario. * / $ connection = new TwitterOAuth (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); / * Si el método está configurado, se modifica la llamada a API. La prueba se llama por defecto. * / $ content = $ connection-> get ('account / verify_credentials'); $ connection-> post ('status / update', array ('status' => 'Text of status here')); / * Incluir HTML para mostrar en la página * / include ('html.inc');

El archivo index.php es el punto de entrada de nuestra aplicación. Cuando visitas tu sitio en el navegador, este código se ejecuta. Los comentarios en el interior lo hacen bastante auto explicativo. Los parámetros del constructor de la clase TwitterOAuth se toman del archivo config.php que visitaremos en breve. Después de obtener una conexión a Twitter, debemos autorizarnos realizando una solicitud de obtención con los parámetros 'account / verify_credentials'.

El resultado de la solicitud de obtención se almacena en la variable $ content y se mostrará al usuario mediante el archivo html.inc, de modo que también se proporcione una retroalimentación de la operación. Para publicar algo en Twitter, realizamos una solicitud de publicación con el parámetro 'estado / actualización' y el texto que se debe publicar..

config.php

 / ** * @archivo * Una única ubicación para almacenar la configuración. * / define ('CONSUMER_KEY', 'store_here_the_consumer_key'); define ('CONSUMER_SECRET', 'store_here_the_consumer_secret'); define ('ACCESS_TOKEN', 'store_here_the_access_token'); define ('ACCESS_TOKEN_SECRET', 'store_here_the_access_token_secret'); define ('OAUTH_CALLBACK', 'http://twitter.dev/callback.php');

Tenga en cuenta que la URL de devolución de llamada de OAuth se basa en el sitio http://twitter.dev. Así es como definí mi host virtual en apache en mi máquina. Puedes definirte con otro nombre.

En este archivo definimos nuestras constantes. Los primeros cuatro son parámetros en el constructor TwitterOAuth (ver más arriba) y el último reemplaza la URL de devolución de llamada que ingresamos cuando definimos la aplicación. Obtienes las primeras cuatro constantes de la aplicación de Twitter.

html.inc

No listaré el código aquí ya que es bastante simple, puedes obtenerlo en la sección de Descargas. Crea un encabezado para la página y en el área de contenido solo muestra la variable $ content. Nuestro propósito es obtener un tweet en Twitter, por lo que este archivo es solo para recibir comentarios sobre nuestras solicitudes.

Control

Genial, nuestra aplicación de maqueta está terminada. Es hora de ver lo que hemos hecho hasta ahora. Así que visite su sitio en su navegador y luego verifique su cuenta de prueba de Twitter. Debes tener un tweet allí con el texto: "Texto del estado aquí".


Paso 1 Prepare la estructura de la carpeta

Ahora que entendemos cómo usar la biblioteca, podemos comenzar a desarrollar nuestro complemento de WordPress.

Tenemos que seguir algunas reglas para integrar nuestro complemento en WordPress. Así que entre en la carpeta de instalación de WordPress y vaya a la carpeta wp-content / plugins y cree una estructura de directorios como la que se muestra en la siguiente imagen:

El código de la biblioteca de Abraham Williams se almacenará en la carpeta lib y la clase que desarrollamos en la carpeta de inclusión. En el archivo index.php en la raíz de nuestra subcarpeta almacenaremos el código que activa la acción de WordPress.


Paso 2 Crea el Código del Plugin

Finalmente estamos allí. Comenzaremos a escribir el código de nuestro plugin. Algunas consideraciones de diseño: podemos almacenar todo nuestro código en el archivo index.php y esta puede ser una buena opción para un complemento simple. Pero decidí guardar el código en un archivo separado en una clase (almacenado en la carpeta de inclusión), por dos razones. La principal es que si hacemos cosas como estas, ampliar la funcionalidad del complemento se vuelve más fácil en comparación con tener todo el almacén de código en un solo archivo. En segundo lugar, quiero mostrarle cómo se puede escribir el código del complemento en una clase.

Deja que WordPress sepa acerca de nuestro complemento

WordPress debe saber que desarrollamos un complemento y nos gustaría integrarlo con el sistema principal. Esto se hace a través de varias líneas de comentarios en el archivo principal del pugin (en nuestro caso index.php). Abra index.php en su editor favorito e ingrese el siguiente código:

 / * Nombre del complemento: myTweet URI del complemento: http://www.google.com/ Descripción: este complemento enviará un tweet a la cuenta de Twitter del autor cada vez que se coloque una nueva publicación en WordPress. El tweet informará a los seguidores sobre el título de la nueva publicación. Autor: Gabriel Cirtea Versión: 1.0 Autor URI: http://www.google.com/ * /

WordPress espera que esta información esté presente en el archivo principal del complemento. Aquí definimos el nombre del complemento, es URI (que por el momento apunta a Google ya que no desarrollamos un sitio para nuestro complemento). También se da una descripción del plugin, autor y versión. Esta es la única información requerida para desarrollar un complemento. Por supuesto, dicho complemento no hará nada, pero estará presente en la lista de complementos de su sitio de WordPress.

Continúe y compruebe esto ... Guarde su archivo, inicie sesión en su sitio y vaya a la página de complementos. Deberías ver algo como en la imagen de abajo:


Paso 3 Nuestra clase de trabajadores

Nuestra clase de trabajadores tendrá dos tareas. Uno será inicializar la clase TwitterOAuth e iniciar sesión en la aplicación, y el segundo será realizar el tweet que anuncia al mundo sobre nuestra nueva publicación en WordPress..

Almacenaremos en la clase como constantes las claves que obtuvimos de nuestra aplicación de Twitter. También tendremos una variable protegida almacenando la conexión a Twitter. Esta declaración parte de nuestra clase se ve así:

 // constantes definidas para acceder a la clase TwitterOAuth const CONSUMER_KEY = 'your_consumer_key_here'; const CONSUMER_SECRET = 'your_consumer_secret_here'; const ACCESS_TOKEN = 'your_access_token_here'; const ACCESS_TOKEN_SECRET = 'your_access_token_secret_here'; // variables de clase protegidas $ conexión estática;

La funcion init

La función init es responsable de crear una instancia de la clase TwitterOAurh y almacenar el retorno del constructor en la variable $ connection. El código es el siguiente:

 función estática pública init () self :: $ connection = new TwitterOAuth (self :: CONSUMER_KEY, self :: CONSUMER_SECRET, self :: ACCESS_TOKEN, self :: ACCESS_TOKEN_SECRET); 

La función de tweet.

La función de tweet está enganchada a la acción save_post de WordPress y recibe como parámetro el ID de publicación. Con esa ID de publicación obtiene el contenido de la publicación como una matriz. Usamos esta matriz para obtener el título de la publicación que luego usamos para twittear según la variable $ connection almacenada en la clase.

 tweet de función estática pública ($ postID) // obtener datos de publicación $ post = get_post ($ postID); // enviar una solicitud de tweet self :: $ connection-> post ('status / update', array ('status' => $ post-> post_title)); 

El código completo de nuestra clase de trabajador es como sigue:

 / ** * class TwitterCommands * * Esta clase pretende ser una interfaz entre nuestro complemento de Twitter * y la clase twitteroauth creada por Abraham Williams. * * Creará una instancia de la clase TwitterOAuth y le enviará los * comandos necesarios necesarios para colocar un tweet cuando se agregue una nueva publicación a * el sitio de WordPress. * / class TwitterCommands // constantes definidas para acceder a la clase TwitterOAuth const CONSUMER_KEY = 'your_consumer_key_here'; const CONSUMER_SECRET = 'your_consumer_secret_here'; const ACCESS_TOKEN = 'your_access_token_here'; const ACCESS_TOKEN_SECRET = 'your_access_token_secret_here'; // variables de clase protegidas $ conexión estática; función estática pública init () self :: $ connection = new TwitterOAuth (self :: CONSUMER_KEY, self :: CONSUMER_SECRET, self :: ACCESS_TOKEN, self :: ACCESS_TOKEN_SECRET);  función pública estática tweet ($ postID) $ post = get_post ($ postID); self :: $ connection-> post ('status / update', array ('status' => $ post-> post_title)); 

Enganchar a WordPress

Conectarse a WordPress significa hacer que WordPress llame a sus funciones cuando ocurra un evento específico. Se puede hacer en dos modos diferentes: usando filtros y usando acciones. La función que utiliza para enlazar es add_action o add_filter. El que debe usar se especifica en la documentación de WordPress. Si el evento al que desea enlazar es una acción, use add_action, de lo contrario, use el filtro agregar.

Para nuestro complemento de Twitter nos conectamos a dos eventos: la acción init y la acción save_post. Se llama a la acción de inicio cuando se carga la página y usaremos esta acción para conectarnos a Twitter. La acción save_post se llama cada vez que el usuario crea y actualiza una publicación, por lo que la usaremos para tuitear. El código se lista a continuación:

 / * Nombre del complemento: Tweet URI del complemento: http://www.tipsfor.us/ Descripción: Este complemento enviará un tweet a la cuenta de Twitter del autor cada vez que se coloque una nueva publicación en WordPress. El tweet informará a los seguidores sobre el título de la nueva publicación. Autor: Gabriel Cirtea Versión: 1.0 Autor URI: http://www.tipsfor.us/ * / // incluya () o requiera () los archivos necesarios aquí ... require_once ('lib / twitteroauth / twitteroauth.php'); require_once ('includes / TwitterCommands.php'); // la configuración y / o los detalles de configuración van aquí ... // vincularse con los enganches de WordPress y cualquier función que deba ejecutarse en la carga add_action ('init', 'TwitterCommands :: init'); add_action ('save_post', 'TwitterCommands :: tweet'); // funciones internas privadas nombradas con un guión bajo // funciones llamadas por los filtros o acciones

El código anterior tiene un pequeño error dejado intencionalmente para crear un ejercicio para ti. Como especifiqué, la acción save_post se llama cuando el usuario crea o actualiza una publicación. Por lo tanto, se llamará dos veces cuando el usuario haya creado una publicación y la publicación no tenga contenido y cuando se guarde la publicación. Esto conducirá a tuitear dos veces uno con un título de publicación dado por WordPress por defecto y segundo con el título dado por el usuario. Debe corregir este error utilizando cualquier método que considere apropiado, tal vez incluso publique su solución en los comentarios..


Eso es!

Bueno, no fue tan difícil, ¿verdad? Escribir este complemento fue bastante fácil y también aprendimos cómo reutilizar el código de otras personas. Puede ampliar este ejemplo con otras cosas que desee hacer, por ejemplo, puede intentar enviar un mensaje directo a alguien..

No olvides consultar la documentación de WordPress y Twitter:

  • http://codex.wordpress.org
  • https://dev.twitter.com/
  • Aspectos básicos del desarrollo de los complementos de WordPress 3: un libro extremadamente interesante y útil para aprender la programación de complementos de WordPress.