Mit Slack können Sie ganz einfach eine Nachricht aus einem Python-Skript veröffentlichen, indem Sie die URL für WebHook abrufen.
In Slack gibt es "Nachricht" für relativ einfache Nachrichten und "Anhänge", die komplexe Nachrichtenformate darstellen können. Ich werde erklären, wie man mit Python in beiden der oben genannten Formate nachlässt.
Veröffentlichen Sie die Posting-URL auf der Seite mit den eingehenden WebHook-Einstellungen von Slack (https://my.slack.com/services/new/incoming-webhook/).
Wählen Sie einen Kanal aus und klicken Sie auf die Schaltfläche "Eingehende WebHooks-Integration hinzufügen".
Erstellen Sie eine Kopie der angezeigten Webhook-URL
(Optional) Sie können die Standard-Post-Einstellungen ändern, wenn Sie möchten.
Artikel | Erläuterung |
---|---|
Customize Name | Standardbenutzername zum Zeitpunkt der Veröffentlichung |
Customize Icon | Standardsymbol beim Posten |
Wenn Sie Korrekturen vornehmen, speichern Sie diese mit "Einstellungen speichern".
Installieren Sie slackweb, mit dem Sie problemlos mit webHook über pip posten können.
sudo pip install slackweb
Sie können eine Nachricht wie folgt senden, indem Sie slackweb verwenden. Die Standardfelder werden für die hier weggelassenen Felder verwendet.
.python
> import slackweb
> slack = slackweb.Slack(url="<Kopierte URL>")
> slack.notify(text="This is a test.")
Sie können den Raum, das Symbol, den Benutzernamen oder die einfache Markdown-Notation ändern, indem Sie das Argument der Benachrichtigungsmethode ändern. (Weitere Informationen finden Sie unter Nachrichtenformatierung.)
.python
> slack.notify(text="This is a *test*.", channel="#coffee", username="coffee-bot", icon_emoji=":coffee", mrkdwn=True)
Sie können komplexe Nachrichten auch über das Formular "Anhänge" senden.
.python
> attachments = []
> attachment = {"title": "Sushi",
"pretext": "Sushi _includes_ gunkanmaki",
"text": "Eating *right now!*",
"mrkdwn_in": ["text", "pretext"]}
> attachments.append(attachment)
> slack.notify(attachments=attachments)
Weitere Informationen finden Sie unter Anhänge.