Pay with Tweet – WordPress Plugin

Pay with Tweet

Finalidad de Pay with Tweet

Pay with Tweet es un plugin que he desarrollado para WordPress cuya finalidad es permitir a los usuarios de un sitio web acceder a descargas concretas a cambio de publicar en su Twitter el mensaje que determine el administrador del sitio a la hora de crear el botón de Pay with Tweet.

Origen del plugin Pay with Tweet

Este plugin nace en la primera edición del Máster oficial en Dirección de Arte en Publicidad por la Universidad de Vigo en el que tuve el honor de participar como ponente hablando de WordPress y Joomla.

El en proyecto que estábamos montando utilizábamos un plugin existente en WP para incluir el Pay with Tweet. A pesar de que el día anterior había comprobado su correcto funcionamiento, cuando llegó el momento de utilizarlo en el máster obtuvimos un fantástico error500 a la hora de aceptar el acceso de nuestra aplicación a Twitter para realizar la acción de Pay with Tweet.

Quien me conoce sabe que este tipo de errores inesperados sacan a relucir mi lado oscuro y en un momento de esos muy míos de ***************** decidí que iba a hacer un plugin para ofrecer este servicio de Pay with Tweet y que ésta sería mi primera contribución a WordPress.

Y así ha sido… también creo que un motivo muy bueno para llevar a cabo este plugin 😀

Documentación de código

El plugin Pay with Tweet incorpora un directorio docs dónde se encuentra la documentación del código en formato HTML, por lo que accediendo vía web a este directorio se podrá ver la documentación de código.

He cuidado especialmente la elaboración de una documentación de código, aunque ésta irá mejorando con el tiempo. Por supuesto, el HTML disponible en el directorio docs no es más que la vista HTML de la documentación que se encuentra dentro del código fuente, como debe ser 😉

Ayuda para Pay with Tweet

En mi canal de YouTube he creado una lista de reproducción para alojar los video-tutoriales de Pay with Tweet. Se irán incorporando los diferentes video-tutoriales poco a poco.

También tanto en la versión de github como de wordpress.com existe un bug track desde el cual se puede contactar conmigo para realizar aportes o informar de errores.

Configuración de Pay with Tweet

La pantalla de configuración con el vídeo de ayuda embebido

La pantalla de configuración con el vídeo de ayuda embebido

Para poder utilizar el plugin es necesario crear una aplicación en Twitter e incorporar el consumer key y el consumer secret.

A la hora de crear la aplicación es necesario establecer correctamente la callback URL. Esta dirección se encuentra en la pantalla de configuración del plugin.

En el siguiente vídeo se muestra el proceso para crear la aplicación en Twitter y configurar correctamente el plugin:

Características del plugin Pay with Tweet

El plugin está realizado buscando, en todo momento, utilizar las API’s de WordPress pone a disposición de los desarrolladores. De hecho, existen otros plugins que proporcionan el mismo servicio, pero que acceden directamente a archivos del núcleo de WordPress en vez de utilizar las vías que WordPress dispone (y recomienda). Este plugin no accede directamente a archivos del núcleo, haciendo que absolutamente todo el plugin corra bajo el flujo predispuesto de WordPress, lo cual es algo muy recomendable y positivo. 🙂

El funcionamiento del plugin es sencillo gracias a la división de tareas por pantallas. De esta forma, cualquier archivo que se quiera utilizar como descarga se subirá desde una pantalla, de forma que se puedan subir varios ficheros a la vez y será en otra pantalla en la cual se creen los botones de Pay with Tweet.

Gestor de descargas

  • Los ficheros destinados a ser utilizados en “Pay with a Tweet” se suben desde una pantalla de la administración.
  • Para la subida de archivos se utiliza el sistema de subida de archivos de WordPress.
  • Los archivos subidos no forman parte del gestor de medios de WordPress.
  • Los archivos no son accesibles vía web.
  • Cuando se elimina un archivo se eliminan todos los botones que la utilizan.
  • Acceso a la creación de un botón desde la subida de archivos.
Pantalla para subir varios archivos usando el sistema de WordPress Drag and drop!

Pantalla para subir varios archivos usando el sistema de WordPress Drag and drop!

Cuando suben los archivos, se muestran con un enlace para crear un nuevo botón con el archivo deseado!

Cuando suben los archivos, se muestran con un enlace para crear un nuevo botón con el archivo deseado!

Gestiona todas las descargas desde una misma pantalla. También puedes crear botones desde ahí!

Gestiona todas las descargas desde una misma pantalla. También puedes crear botones desde ahí!

 

Gestor de botones

  • Cada botón creado se vincula a un archivo. Pueden existir varios botones vinculados al mismo archivo.
  • En cada botón se puede establecer un título, la imagen a utilizar como botón y el texto a publicar como tweet.
  • Los botones se pueden eliminar o eliminar permanentemente. Esta segunda opción eliminará también la imagen y el archivo del botón.
Listado de todos los botones creados, con su shorcode y las opciones para borrar

Listado de todos los botones creados, con su shorcode y las opciones para borrar

Cada botón tiene su propio texto para tweet, puede tener su imagen (o reciclar una existente) y puedes seleccionar la descarga

Cada botón tiene su propio texto para tweet, puede tener su imagen (o reciclar una existente) y puedes seleccionar la descarga

Soporte a varios idiomas

El plugin incorpora el idioma inglés y español. Además, en el directorio languages se puede obtener el fichero .po para realizar la traducción en otros idiomas.

La compatibilidad con el plugin WPML está pendiente para futuras versiones.

Shortcodes

El plugin incorpora un shortcode estilo para poder incorporar el botón en cualquier lugar de una entrada o página.

Widgets

El plugin incorpora un widget para colocar el botón en los sidebars. El widget permite introducir un título, un texto a mostrar antes del botón y un desplegable con los botones disponibles para seleccionar el deseado.

Puedes utilizar los botones en los sidebars gracias al widget incorporado!

Puedes utilizar los botones en los sidebars gracias al widget incorporado!

Proceso de descarga

Cuando un usuario clique en el botón/enlace para descargar el fichero, tendrá que aceptar dar acceso al sitio web para publicar el tweet asociado al botón, una vez publicado correctamente, la descarga se lanza automáticamente.

El plugin no almacena el access_token del usuario por lo que el plugin no podrá publicar tweets en la cuenta del usuario en ningún momento salvo cuando el usuario, expresamente, clica en descargar fichero.

Estadísticas

  • Cuando se descarga un fichero a través de un botón de pay with a tweet, se guarda la referencia de esta descarga con fines estadísticos.

Está contemplado para futuras versiones mostrar las estadísticas de descargas por botón.

Resultado de ejemplo

En este sitio web está instalado el plugin Pay with a Tweet, he creado un fichero PDF con el contenido de esta página y lo e incorporado al plugin para crear un botón con él.

Para visualizar el botón, en vez de utilizar el widget, he puesto el shortcode, siendo el resultado la imagen siguiente:

Pagar con un Tweet para descargar Pay with a tweet sample

Descargar Pay with Tweet

Actualmente existen dos lugares desde los cuales se puede descargar el plugin Pay with Tweet.

Si quieres utilizar el plugin para un sitio en producción lo mejor es descargarlo desde WordPress.com ya que allí se encuentran las versiones estables del plugin:

http://wordpress.org/plugins/pay-with-a-tweet/

Si por el contrario quieres probarlo en un sitio en desarrollo o eres todo un valiente, el desarrollo activo del plugin está en github. Eso sí, ten en cuenta que la vía oficial es WordPress, el uso de la versión de github debería estar limitada a lo conocido como “cacharreo”, para estudiar el código o para colaborar con el plugin.

https://github.com/rolando-caldas/pay-with-a-tweet-wp-plugin

42 pensamientos en “Pay with Tweet – WordPress Plugin

    1. Hola ervija,

      La url que indicas es correcta. Si las pruebas las estás realizando en local es normal que de ese error. También es normal que falle si el dominio desde el que estás probando es diferente al dominio de la URL indicada en dev twitter como callback.

      La URL que indicas es la que inicia la comunicación con Twitter. Twitter espera que se haga todo desde el dominio indicado en la ruta del callback. Además, cuando Twitter intente compartir información con la URL que indicas, si es local, no lo conseguirá.

      Si todo lo anterior no fuese tu caso, ¿tienes los enlaces permanentes de WordPress personalizado? o estás con el sistema predeterminado. Pensando en los posibles problemas, no lo probé en el caso de una instalación sin el .htaccess de las urls amigables, es algo que he de comprobar lo antes posible.

      Saludos

  1. Hola de nuevo,

    No estoy probando en local. Estoy probando en un post de un blog que tengo, y en el que he incluido el “shortcode”. En cuanto pincho en el botón me da “página no encontrada” el propio WordPress.

    Respecto a la Callback URL, es la misma que te he puesto, pero sin los parámetros (es decir, hasta el “download”, por lo que eso creo que está bien.

    Lo que sí tengo activados son los enlaces permanentes, del tipo: http://nombredemiweb.com/blog/sample-post/, no sé si ese será el problema.

    ¿Me puedes dar un ejemplo de web en la que esté funcionando bien el plugin?

    ¡Gracias!

    1. He actualizado esta página con un ejemplo de descarga, lo he probado y parece ir OK. Lo tienes en la parte final de la página en “Resultado de ejemplo”.

      Asegúrate de estar con la última versión del plugin (1.0.2). Si quieres puedes enviarme por correo (está en http://rolandocaldas.com/sobre-mi) unos datos de acceso con permisos para revisar/comprobar el plugin en el blog dónde lo tienes instalado.

      Un saludo

    1. Buenos días,

      Si me facilitas por correo electrónico datos para acceder a la administración y poder comprobar el funcionamiento y el tipo de error que genera… Aunque antes de nada si no lo tienes actualizado a la v1.0.2 es importante actualizarlo ya que en esta versión es cuando se cambió el uso de la API de Twitter a la 1.1

      saludos

  2. Hola chicos,

    He tenido unos días muy complicados y no he podido volver a retomar el tema hasta ahora. He visto que todotuto ya funciona. ¿Cuál fue el problema?

    Gracias.

    En nuestro caso tenemos la v1.0.2 y nada, sigue sin funcionar…

    Un saludo.

    1. Buenas,

      Creo que todotuto está utilizando un servicio externo para ello. Si te parece bien, puedes facilitarme datos de acceso al ftp y una cuenta con permisos en la web para verte el problema, seguramente se detecte el problema antes. Estuve haciendo lo mismo con una persona que tenía un problema con el plugin (otro diferente) y en su caso resultó ser un conflicto con algo “extraño” que tenía instalado. Si prefieres no facilitarme datos de acceso (lo cual sería comprensible claro) lo intentaríamos por otra vía, aunque más larga claro 😉

      saludos!

    2. El problema indicado por Javi se ha podido solucionar (gracias a su colaboración). Había un error del plugin cuando wordpress no estaba instalado en el directorio raíz. Se soluciona en la v1.0.3

  3. Fatal error: Cannot redeclare class TwitterOAuth in /home1/….html/wp-content/plugins/pay-with-a-tweet/lib/twitteroauth.php on line 15

    No se ni que puede llegar a ser revise todo y esta bien pero no funciona.. Si tienes alguna ida sería genial gracias

  4. Hola UYsuar, ese error indica que la clase TwitterOAuth se está intentando definir dos veces, por eso te da error. ¿tienes la última versión del plugin? ¿algún otro plugin instalado que se conecte con redes?

    saludos

  5. After I corrected the Twitter API it was working but now the plugin is giving errors:

    (My DIR Username and download file blanked out for obvious reasons)

    Warning: file_get_contents(/home4/******/public_html/getondemandtraffic.com/wp-content/uploads/pay-with-a-tweet/MY FLIE NAME.zip) [function.file-get-contents]: failed to open stream: No such file or directory in /home4/******/public_html/getondemandtraffic.com/wp-content/plugins/pay-with-a-tweet/inc/action.php on line 178

    Warning: Cannot modify header information – headers already sent by (output started at /home4/******/public_html/getondemandtraffic.com/wp-content/plugins/pay-with-a-tweet/inc/action.php:178) in /home4/******/public_html/getondemandtraffic.com/wp-content/plugins/pay-with-a-tweet/inc/action.php on line 182

    Warning: Cannot modify header information – headers already sent by (output started at /home4/******/public_html/getondemandtraffic.com/wp-content/plugins/pay-with-a-tweet/inc/action.php:178) in /home4/******/public_html/getondemandtraffic.com/wp-content/plugins/pay-with-a-tweet/inc/action.php on line 183

    Warning: filesize() [function.filesize]: stat failed for /home4/******/public_html/getondemandtraffic.com/wp-content/uploads/pay-with-a-tweet/On-Demand-Traffic-Videos.zip in /home4/******/public_html/getondemandtraffic.com/wp-content/plugins/pay-with-a-tweet/inc/action.php on line 184

    Warning: Cannot modify header information – headers already sent by (output started at /home4/******/public_html/getondemandtraffic.com/wp-content/plugins/pay-with-a-tweet/inc/action.php:178) in /home4/******/public_html/getondemandtraffic.com/wp-content/plugins/pay-with-a-tweet/inc/action.php on line 184

    Warning: Cannot modify header information – headers already sent by (output started at /home4/******/public_html/getondemandtraffic.com/wp-content/plugins/pay-with-a-tweet/inc/action.php:178) in /home4/******/public_html/getondemandtraffic.com/wp-content/plugins/pay-with-a-tweet/inc/action.php on line 185

    1. Hello

      It seems that doesn’t exist your file “/home4/******/public_html/getondemandtraffic.com/wp-content/uploads/pay-with-a-tweet/MY FLIE NAME.zip”.

      The folder /wp-content/uploads/pay-with-a-tweet/ requires write permissions to upload the files… so…

      1. Remove the pay-with-a-tweet downloads.
      2. Connect to FTP and set the CHMOD of the folder /wp-content/uploads/pay-with-a-tweet/ to 777
      3. Create a new pay-with-a-tweet download.
      4. Check if the downloads exists inside /wp-content/uploads/pay-with-a-tweet/
      5. Try the download again!

    1. Buenas,

      Es un “error” conocido… no es tanto del plugin como algo de Twitter (aún lo estoy investigando). El error no está en la segunda descarga exactamente, sino en publicar desde fuera (desde una app) el mismo tweet dos veces seguidas, si escribes algo en tu cuenta de twitter ya funcionará bien… o si pasa determinado tiempo entre la misma publicación de tweet…

  6. Hola Rolando, creo haber instalado y revisado siguiendo tus indicaciones, en mi caso da acceso pero no consigo descargarlo por que creo que no llega a publicar el twitt y me devuelve el siguiente error:
    Error 403

    403 Forbidden

    Un saludo.

    1. En principio el problema tiene que estar relacionado. Un error 403 es, en principio, o bien porque no das permiso a twitter para poder publicar o bien que tu app no puede realizar alguna de las tareas que el plugin necesita. ¿tienes una url dónde probar el proceso?

      saludos

  7. tried as per your video interactions and getting an error

    Fatal error: Cannot redeclare class TwitterOAuth in /home/kismet4/public_html/wp-content/plugins/pay-with-a-tweet/lib/twitteroauth.php on line 15

    1. Pues no contemplé esa posibilidad. Me lo apunto e intento sacar a lo largo de Junio una versión que almacene las descargas de cada “botón”, tal y como está vía WP no podrías… igual desde GA utilizando la URL destino… de cualquier modo, la próxima versión contemplará lo que comentas

      saludos!

  8. I love your plugin, but i have a little request for a next release: i’m using a download manager to track some downloads, like this: http://www.skyflash.it/downloads/download-info/traduzione-di-morrowind-e-bloodmoon/ and i’d love to integrate it with Pay with a tweet.

    But your plugin can “only” create tweet buttons with a file attached. I need buttons with a link, not the file. In this way i can create tweet buttons with the download manager links, so i can get advantage of both the solutions: a “tweet download” and the download manager counter & tracking system 🙂

    It is possible?

  9. Pingback: Plugins para WordPress que harán de tu blog una chulada - Diseño CreativoDiseño Creativo

  10. Pingback: Plugins para WordPress que harán de tu blog una chulada | Diseño web

  11. Pingback: Plugins para WordPress que harán de tu blog una chulada | Creación paginas web

  12. Hola, primero darte las gracias por tu plugin.
    Intento introducir los datos de mi web y la call back URL que me indica el plugin pero solo obtengo este mensaje de twitter “Error. Validation failed: Not a valid URL format”
    No sé si tendrá que ver que tengo instalado wp en un subdominio…
    Gracias de antemano…

  13. Hola de nuevo, sigo peleándo con el plugin, mi problema es que cuando intento crear la aplicación en twitter no me reconoce como válida la call back URL que indicas, si dejo en blanco ese campo no me funciona la app. ¿Alguna solución?
    Gracias de antemano…

Deja un comentario