Avec Slack, vous pouvez facilement publier un message à partir d'un script Python en obtenant l'URL de WebHook.
Dans Slack, il existe des «messages» utilisés pour des messages relativement simples et des «attachements» qui peuvent représenter des formats de messages complexes. J'expliquerai comment publier pour slack dans les deux formats ci-dessus en utilisant Python.
Publiez l'URL de publication sur la page des paramètres du WebHook entrant de Slack (https://my.slack.com/services/new/incoming-webhook/).
Sélectionnez un canal et cliquez sur le bouton «Ajouter l'intégration des WebHooks entrants».
Faire une copie de l'URL du webhook affichée
(Facultatif) Vous pouvez modifier les paramètres de publication par défaut si vous le souhaitez.
article | La description |
---|---|
Customize Name | Nom d'utilisateur par défaut au moment de la publication |
Customize Icon | Icône par défaut lors de la publication |
Si vous apportez des corrections, enregistrez-les avec «Enregistrer les paramètres».
Installez slackweb via pip, ce qui vous permet de publier facilement sur WebHook.
sudo pip install slackweb
Vous pouvez envoyer un message comme suit en utilisant slackweb. Les champs par défaut sont utilisés pour les champs omis ici.
.python
> import slackweb
> slack = slackweb.Slack(url="<URL copiée>")
> slack.notify(text="This is a test.")
Vous pouvez modifier la pièce, l'icône, le nom d'utilisateur ou utiliser une notation de démarque simple en modifiant l'argument de la méthode de notification. (Pour plus d'informations, voir Formatage des messages.)
.python
> slack.notify(text="This is a *test*.", channel="#coffee", username="coffee-bot", icon_emoji=":coffee", mrkdwn=True)
Vous pouvez également envoyer des messages complexes en utilisant le format «attachements».
.python
> attachments = []
> attachment = {"title": "Sushi",
"pretext": "Sushi _includes_ gunkanmaki",
"text": "Eating *right now!*",
"mrkdwn_in": ["text", "pretext"]}
> attachments.append(attachment)
> slack.notify(attachments=attachments)
Voir Pièces jointes pour plus d'informations.