Modello di notifica su Slack

Slack è una piattaforma di messaggistica che aiuta i team a connettersi e a collaborare. Quando si seleziona slack come destinazione del servizio, qualsiasi notifica sottoscritta su un evento può essere inviata come messaggio ai canali slack.

Per ulteriori informazioni sulla destinazione Slack, vedere Slack.

Creazione di modelli di notifica su Slack

Costruire pile di blocchi. Per maggiori dettagli, vedere il kit di blocco di allentamento.

Gli utenti possono generare o convalidare un JSON statico utilizzando i costruttori del Block Kit. Questo viene aggiunto come modello di Slack nelle Event Notifications.

Esempio di utilizzo:

Le sezioni seguenti descrivono come creare modelli di notifica Slack utilizzando l'API di input e i blocchi JSON.

API di input per i modelli

L'API di input per i modelli fornisce un meccanismo che consente agli utenti di definire in modo programmatico i modelli di messaggi di notifica. Gli utenti possono generare blocchi JSON che rappresentano i layout del Block Kit utilizzando il Block Kit Builder e codificarli in formato base64 per includerli nei loro modelli.

Blocchi JSON

I blocchi JSON rappresentano il layout e la struttura dei messaggi di notifica utilizzando il formato Slack Block Kit. Gli utenti possono creare layout di messaggi ricchi e interattivi definendo vari tipi di blocchi come sezioni, azioni e pulsanti. Gli Handlebars possono essere utilizzati con blocchi JSON per una potente integrazione. È possibile progettare i propri blocchi JSON tramite il seguente costruttore https://app.slack.com/block-kit-builder

Esempio di notifica predefinita

L'esempio seguente mostra la struttura predefinita del blocco di notifica di Slack utilizzata da Event Notifications quando non viene applicato alcun modello personalizzato. Puoi utilizzarlo come punto di partenza per creare il tuo modello di notifica su Slack.

{
  "blocks": [
    {
      "type": "rich_text",
      "elements": [
        {
          "type": "rich_text_section",
          "elements": [
            {
              "type": "text",
              "text": "{{ibmendefaultshort}}",
              "style": {
                "bold": true
              }
            }
          ]
        }
      ]
    },
    {
      "type": "section",
      "text": {
        "type": "plain_text",
        "text": "{{ibmendefaultlong}}",
        "emoji": true
      }
    },
    {
      "type": "divider"
    },
    {
      "type": "context",
      "elements": [
        {
          "type": "mrkdwn",
          "text": "```{{event_payload}}```"
        }
      ]
    }
  ]
}

Dove:

  • {{ibmendefaultshort}} — il breve testo riassuntivo contenuto nel payload della notifica, visualizzato in grassetto.
  • {{ibmendefaultlong}} — il messaggio di notifica completo contenuto nel payload della notifica.
  • {{event_payload}} — un segnaposto del modello che visualizza l'intero contenuto della notifica come blocco di codice preformattato su Slack. Questa non è una proprietà presente nel payload della notifica.
Uso:

I seguenti esempi mostrano come utilizzare diversi tipi di blocchi Slack nei modelli di notifica.

Blocco di sezione

I blocchi di sezione visualizzano contenuti testuali con accessori opzionali come pulsanti o immagini. Per saperne di più sui blocchi di sezione, consultare Blocco di sezione.

Secondo le limitazioni del kit di blocchi Slack, un blocco di sezione supporta un massimo di 3000 caratteri nel campo di testo. Se il contenuto generato supera questo limite, slack rifiuterà il payload e la notifica non sarà consegnata. Viene restituito il seguente messaggio di errore: Slack failed with an error message: 'invalid_blocks' and status code: 400. Usare i blocchi di contesto per evitare l'interruzione delle notifiche per i messaggi che superano i 3000 caratteri.

{
   "blocks": [
      {
         "type": "section",
         "text": {
            "type": "mrkdwn",
            "text": "This is a notification message."
         }
      },
      {
         "type": "divider"
      },
      {
         "type": "actions",
         "elements": [
            {
               "type": "button",
               "text": {
                  "type": "plain_text",
                  "text": "View Details",
                  "emoji": true
               },
               "url": "https://example.com/details"
            }
         ]
      }
   ]
}
Blocco di contesto

I blocchi contestuali visualizzano informazioni supplementari con testo e immagini in un formato compatto. Per saperne di più sui blocchi di contesto, consultare Blocco di contesto.

Un blocco di contesto supporta un massimo di 16000 caratteri nel campo di testo. Se il contenuto generato supera questo limite, il messaggio sarà troncato, ma la notifica sarà comunque consegnata con successo.

{
   "blocks": [
      {
         "type": "context",
         "elements": [
               {
                  "type": "image",
                  "image_url": "https://image.freepik.com/free-photo/red-drawing-pin_1156-445.jpg",
                  "alt_text": "images"
               },
               {
                  "type": "mrkdwn",
                  "text": "This is a notification message."
               }
         ]
      }
   ]
}

Codifica Base64

Per includere i blocchi JSON nel template, devono essere codificati in formato base64. In questo modo si garantisce che i dati vengano trasmessi in modo sicuro e che possano essere decodificati con precisione al momento del rendering del messaggio di notifica.

Esempio di utilizzo del modello di creazione:

L'esempio seguente mostra una richiesta di modello completa con base64-encoded blocchi JSON.

{
	"name": "Template for TIP",
	"params": {
		"body": "eyJibG9ja3MiOlt7InR5cGUiOiJzZWN0aW9uIiwidGV4dCI6eyJ0eXBlIjoibXJrZG93biIsInRleHQiOiJUaGlzIGlzIGEgbm90aWZ5aW5nIG1lc3NhZ2UuIn19LHsidHlwZSI6ImRpdmlkZXIiLCJ0ZXh0Ijp7InR5cGUiOiJtbmF2IiwidGV4dCI6IlRoaXMgaXMgYSBuZXcgbm90aWZ5aW5nIG1lc3NhZ2UuIiwiZW1vamkiOnRydWV9fV0seyJ0eXBlIjoiYWN0aW9ucyIsImVsZW1lbnRzIjpbeyJ0eXBlIjoicGxhaW5fdGV4dCIsInRleHQiOnsic2VsZWN0aW9yIjp7InR5cGUiOiJwbGFpbl90ZXh0IiwidGV4dCI6IlZpZXcgRGV0YWlscyIsImVtb2ppIjp0cnVlfX19XX0="
	},
	"type": "slack.notification"
}