Chuleta

Chuleta de desarrollo de apps de Slack

Las llamadas a la Web API van a https://slack.com/api/<método> con Authorization: Bearer <token>. Los errores lógicos devuelven HTTP 200 con "ok": false y una cadena "error": comprueba ok, no solo el código de estado.

Tokens

  • xoxb- token de bot: actúa como el usuario bot de la app
  • xoxp- token de usuario: actúa en nombre de una persona
  • xapp- token de app: Socket Mode (connections:write)
  • Signing secret: verifica las peticiones HTTP de Slack

Firma de peticiones

  • Cadena base: v0:{X-Slack-Request-Timestamp}:{cuerpo en bruto}
  • HMAC-SHA256 con el signing secret, compara con X-Slack-Signature (v0=...)
  • Rechaza timestamps de más de 5 minutos
  • Los reintentos llevan X-Slack-Retry-Num y X-Slack-Retry-Reason

Generador de firmas

Modos de entrega

  • Events API por HTTP: Request URL pública, desafío url_verification al configurar
  • Socket Mode: WebSocket desde tu app, sin URL pública; no permitido en apps del Marketplace
  • Confirma eventos, comandos e interacciones en 3 segundos
  • response_url permite responder más tarde a un comando o interacción

mrkdwn

  • *bold* _italic_ ~strike~ `code` ```bloque```
  • <https://example.com|texto> enlaces
  • <@U123>, <#C123>, <!here>, <!channel>
  • Escapa &, < y > como &amp; &lt; &gt;

Constructor de Block Kit

Scopes de bot comunes

  • chat:write publicar mensajes
  • commands comandos slash
  • app_mentions:read @menciones de la app
  • channels:history, im:history leer mensajes
  • users:read, reactions:write, files:write

Errores comunes

  • not_in_channel invita al bot o usa chat:write.public
  • channel_not_found ID incorrecto o sin acceso
  • missing_scope añade el scope y reinstala
  • invalid_blocks revisa límites y tipos de campo
  • ratelimited / HTTP 429 respeta Retry-After

Fuente: api.slack.com.

Última revisión con la documentación oficial: