---
url: 'https://metadrop.net/es/articulos/como-desarrollar-una-aplicacion-de-pomodoro-para-slack-en-php'
title: 'Cómo desarrollar una aplicación de Pomodoro para Slack en PHP'
author: 'Eduardo Morales'
date: '2020-12-13T15:58:14+00:00'
updated: '2026-06-10T08:19:03+00:00'
type: article
summary: 'Slack tiene una API muy amplía de la que poder tirar. En este artículo aprenderás de manera sencilla en pocos pasos a programar una aplicación de Pomodoro basada en PHP sin necesidad de tener demasiados conocimientos sobre las tecnologías tratadas.'
tags:
  - PHP
image: 'https://metadrop.net/sites/default/files/styles/full/public/imce/image/article/slack.jpg.webp?itok=HWrHVywP'
published: true
og:
  determiner: Automatic
  site_name: Metadrop
  'image:url': 'https://metadrop.net/sites/default/files/styles/full/public/imce/image/article/slack.jpg.webp?itok=HWrHVywP'
  'image:type': image/jpeg
  'image:width': '810'
  'image:height': '456'
  'image:alt': 'Cómo desarrollar una aplicación de Pomodoro para Slack en PHP'
  street_address: 'Calle Manuel Luna, 12, 3 Dcha'
  locality: Madrid
  region: Madrid
  postal_code: '28020'
  country_name: España
  email: hola@metadrop.net
  phone_number: '910053180'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      '@type': Article
      '@id': 'https://metadrop.net/es/articulos/como-desarrollar-una-aplicacion-de-pomodoro-para-slack-en-php#article'
      name: 'Cómo desarrollar una aplicación de Pomodoro para Slack en PHP'
      headline: 'Cómo desarrollar una aplicación de Pomodoro para Slack en PHP'
      description: "Slack tiene una API muy amplía de la que poder tirar.\_En este artículo aprenderás de manera sencilla en pocos pasos a programar una aplicación de Pomodoro basada en PHP sin necesidad de tener demasiados conocimientos sobre las tecnologías tratadas."
      about: PHP
      image:
        '@type': ImageObject
        url: 'https://metadrop.net/sites/default/files/styles/full/public/imce/image/article/slack.jpg.webp?itok=HWrHVywP'
        width: '810'
        height: '456'
      datePublished: '2020-12-16T16:58:14+0100'
      dateModified: '2026-06-10T10:19:03+0200'
      author:
        '@type': Person
        name: 'Eduardo Morales'
      publisher:
        '@type': Organization
        '@id': 'https://metadrop.net/#organization'
      mainEntityOfPage: 'https://metadrop.net/es/articulos/como-desarrollar-una-aplicacion-de-pomodoro-para-slack-en-php'
    -
      '@type': Organization
      '@id': 'https://metadrop.net/#organization'
      url: 'https://metadrop.net/'
      name: Metadrop
      sameAs:
        - 'https://www.drupal.org/metadrop'
        - 'https://twitter.com/metadrop'
        - 'https://asociaciondrupal.es/partner/metadrop'
        - 'https://www.linkedin.com/company/metadrop'
      logo:
        '@type': ImageObject
        url: 'https://metadrop.net/themes/custom/mdrop_radix/logo-metadrop-500-500.jpg'
        width: '500'
        height: '500'
    -
      '@type': ItemPage
      '@id': 'https://metadrop.net/es/articulos/como-desarrollar-una-aplicacion-de-pomodoro-para-slack-en-php'
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Inicio
            item: 'https://metadrop.net/es'
          -
            '@type': ListItem
            position: 2
            name: 'Artículos expertos sobre Drupal y tecnología'
            item: 'https://metadrop.net/es/articulos'
      publisher:
        '@type': Organization
        '@id': 'https://metadrop.net/#organization'
---
 1. [Artículos](https://metadrop.net/es/articulos)
 
  

# Cómo desarrollar una aplicación de Pomodoro para Slack en PHP

Miércoles 16 de Diciembre de 2020

 

 



Slack tiene una API muy amplía de la que poder tirar. En este artículo aprenderás de manera sencilla en pocos pasos a programar una aplicación de Pomodoro basada en PHP sin necesidad de tener demasiados conocimientos sobre las tecnologías tratadas.



   



## Introducción

Slack es una de las herramientas más extendidas a nivel de comunicación de forma profesional y permite integrar con múltiples aplicaciones o plugins. Un ejemplo sería Google Calendar, que permite configurarlo para que en la propia aplicación muestre las reuniones más próximas. Por tanto, Slack puede llegar a considerarse una de las herramientas más importantes para la organización de un equipo si se usa de una manera responsable.

## Presentación de la API de Slack

Slack tiene una muy buena [documentación de su API](https://api.slack.com/ "Api slack"), además de una amplia comunidad de desarrolladores que usan su aplicación, por lo que si no encuentras algo o tienes dudas accediendo a la página oficial de Slack, lo podrás encontrar en foros de desarrollo como [Stack Overflow](https://stackoverflow.com/questions/tagged/slack "Stack Overflow Slack").

## La librería

Aunque podríamos desarrollar la integración con la API de Slack completamente desde cero, no es eficiente reinventar la rueda, ya que el objetivo del artículo es tener una aplicación funcional en pocos pasos y de forma sencilla.

Dicho esto, os presento la librería que vamos a usar: [jolincode/slack-php-api](https://github.com/jolicode/slack-php-api "Slack php api"). Es una librería de Composer, por lo que la vamos a importar al proyecto usando este sistema de gestión de paquetes. Además, tiene bastantes [métodos de Slack](https://github.com/jolicode/slack-php-api/blob/master/generated/Client.php "Métodos disponibles de slack") que nos pueden llegar a ser útiles y que van actualizando cada cierto tiempo.

## Cookbook

Ingredientes:

- [Composer](https://getcomposer.org/download/ "Instalar composer")
- [Php](https://www.php.net/manual/en/install.php "Instalación de PHP")
- Tener un *workspace* de Slack donde hacer pruebas

Pasos:

- Crea una nueva carpeta donde estará situado el proyecto.
- Ejecuta `composer init` para poder importar las librerías necesarias para este proyecto.
- Importa las librerías según se indica en el [manual de instalación de la librería de Slack](https://github.com/jolicode/slack-php-api#installation "Slack instalación de la API")

Quedará algo así en tu composer:

```bash
... 
   "require": {
        "symfony/http-client": "^5.2",
        "nyholm/psr7": "^1.3",
        "jolicode/slack-php-api": "^3.0",
    }
```

- Copia este snippet en un archivo `pomodoro.php` en la raíz del proyecto. Por ejemplo:

```php
<?php

require __DIR__ . '/vendor/autoload.php';

use JoliCode\Slack\ClientFactory;
use JoliCode\Slack\Exception\SlackErrorResponse;

// Token de slack.
$user_token = 'xoxp-XXXX-XXXX-XXXX-XXXX';
$client = new ClientFactory($user_token);
try {
  $status = [
    // Mensaje de estado.
    "status_text" => 'Pomodoro time!!',
    // Icono de estado.
    "status_emoji" => ':tomato:',
    // Duración o tiempo que va a permanecer el estado.
    "status_expiration" => strtotime('+25 minutes'),
  ];
  $status_json = json_encode($status);
  $result = $client->usersProfileSet([
    "profile" => $status_json,
  ]);

  echo 'Estado actualizado.' . PHP_EOL;
} catch (SlackErrorResponse $e) {
  echo 'Fallo al actualizar el estado.', PHP_EOL, $e->getMessage() . PHP_EOL;
}
```

- Reemplaza el "**user\_token**" de ejemplo 'xoxp-XXXX-XXXX-XXXX-XXXX' por el que se genera en el siguiente paso (obtener el token de usuario).

## Obtener un token de usuario de Slack

Estos son los pasos para obtener el token del usuario registrado actualmente en Slack, por lo que no se podrá sobreescribir el estado de otros usuarios siguiendo estos pasos.

- Accede a la [api de Slack](https://api.slack.com/ "API de Slack") con tu usuario y ve a [**"Your apps"**](https://api.slack.com/apps "Tus aplicaciones en slack")
- Crea una nueva aplicación seleccionando el botón "**Create New App**"
- Después de crear la aplicación, ve a "**Features/OAuth &amp; Permissions**" en la barra lateral izquierda.
- Ves a "**User Token Scopes**" y añade el permiso de "`users.profile:write`" seleccionando el botón de "**Add an OAuth Scope**". Este permiso es el que le permitirá a la aplicación sobreescribir tu estado de usuario.
- Selecciona en "**Settings/Install App**" y elige un *workspace* para instalar la aplicación.
- Después de instalar la aplicación obtendrás un "**OAuth Access Token**" que será algo cómo:
    
    ```plaintext
    xoxp-XXXX-XXXX-XXXX-XXXX
    ```

## Ejecutar el script de PHP

Si ya tienes instalado PHP en tu equipo, recuerda añadir al snippet de PHP anterior el token de Slack para poder actualizar el perfil.

Ya solo tienes que ejecutar el script desde una consola de Bash.

```bash
bash$ php /RUTA_DEL_SCRIPT/pomodoro.php
```

Verás que el estado de tu perfil se ha actualizado, tanto el mensaje como el icono de forma temporal si todo ha salido bien.

## Conclusiones

Ahora que ya conoces la librería de Slack, te invito a que pruebes con diferentes métodos, por ejemplo, enviar un mensaje a un canal en específico. También puedes probar a crear un bot aunque para ello te hará falta tener un servidor donde esté alojado.

Recuerda que según los métodos que utilices tendrás que concederles los permisos específicos a la aplicación y tendrás que reinstalarla en el *workspace*. Por ejemplo [si me voy al método para enviar un mensaje en el chat](https://api.slack.com/methods/chat.postMessage "Método para enviar un mensaje en slack.") veremos que el scope requerido para el usuario es `chat:write`.

### Posibles mejoras

Has aprendido a cambiar el estado de tu perfil en Slack, pero la aplicación de Slack también te permite que bajo ciertos comandos que escribas en el chat llamados *slash commands* se hagan ciertas acciones, con eso se podría crear un comando para que en el caso de escribir `/pomodoro start` por ejemplo, cambie el estado del perfil.

## Proyecto original

Puedes ver el proyecto original en el que se ha bastado este artículo en [github con el nombre slack\_pomodoro.](https://github.com/Eduardo-Morales-Alberti/slack_pomodoro "Slack Pomodoro PHP")

## Otros proyectos

- [Cliente completamente en bash](https://github.com/rockymadden/slack-cli "Librería slack en bash")
- [Cliente de Slack en python](https://pypi.org/project/slack-cli/ "Slack Cli python")



[PHP](https://metadrop.net/es/articulos?text=PHP)

 

- Eduardo Morales
    
    Senior Drupal developer
 
[Desarrollo de módulos e integraciones de terceros con Drupal](https://metadrop.net/es/servicios/drupal/integraciones " See Desarrollo de módulos e integraciones de terceros con Drupal")

Metadrop conecta Drupal con tu CRM, ERP, pasarela de pago y stack de marketing — Salesforce, Microsoft Dynamics, TPV virtual de BBVA, Workday y Keepeek — mediante módulos personalizados y APIs seguras y conformes con el RGPD.

 

 Ver más