Im vorherigen Artikel habe ich einen Bot erstellt, der eine bestimmte Zeichenfolge zu einer Erwähnung zurückgibt. https://qiita.com/tokoroten_346/items/0aa9c04d5d3f2a956cd2
Dieses Mal werden wir dem Bot etwas mehr Funktionalität geben.
Die Struktur der Datei sieht wie beim letzten Mal aus
hello
├ hello.py #Datei zum Starten des Bots
├ slackbot_settings.py #Datei zum Schreiben von Bot-Einstellungen(Slack Token etc.)。
└─plugins
└┬ __init__.py #Es scheint, dass der Himmel in Ordnung ist ...
└ bot_module.py #Dieses Mal werde ich es hier beschreiben und die Funktionen des Bots hinzufügen
Schreiben Sie es sofort in bot_module.py und fügen Sie die Bot-Antwort hinzu. Erstellen Sie zunächst die folgenden Funktionen. · Antworten auf bestimmte Wörter in Erwähnungen (mit reply_to) · Antwort auf ein bestimmtes Wort im Kanal (mit listen_to)
Der Code sieht so aus
bot_module.py
from slackbot.bot import respond_to
from slackbot.bot import listen_to
# respond_zu antworten, wenn erwähnt
@respond_to('Hello')
def mention_function(message):
#Geben Sie eine Antwort auf locker zurück
message.reply('World')
# listen_um auf Wörter im Kanal zu antworten
@listen_to('Guten Morgen')
def lesten_function(message):
#Geben Sie eine Antwort auf locker zurück
message.reply('Japanische Gowakarimasen')
Antworten Sie auf die Erwähnung mit @respond_to. @listen_to beschreibt die Antwort auf den Kanal.
Anderer Code ist der gleiche wie beim letzten Mal
hello.py
from slackbot.bot import Bot
def main():
bot = Bot()
bot.run()
if __name__ == "__main__":
print("Hello bot")
main()
slackbot_settings.py
#Geben Sie das Token des Bot-Kontos an, das Sie zuvor erhalten haben
API_TOKEN = "xxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxxxxxxxxxxxxx"
#Schreiben Sie die Standardantwort für diesen Bot
DEFAULT_REPLY = "Guten Morgen"
#Liste der Unterverzeichnisnamen, in denen sich das Plug-In-Skript befindet
PLUGINS = ['plugins']
Wenn dieser Bot ausgeführt wird, ist dies wie folgt.
"World" wird für "Hallo" -Erwähnungen zurückgegeben, "Nihongowakarimasen" wird für "Guten Morgen" im Kanal zurückgegeben und "Keine Antwort ..." wird für nicht registrierte Erwähnungen zurückgegeben. Übrigens, wenn die Erwähnung und der Beitrag im Kanal umgekehrt werden, wird es nicht gut reagieren.
Jetzt, da wir mit listen_to und reply_to antworten können, werden wir als nächstes die API von chat.postMessage verwenden. https://api.slack.com/methods/chat.postMessage
Ändern Sie bot_module.py wie folgt.
bot_module.py
from slackbot.bot import respond_to
from slackbot.bot import listen_to
import json
import requests
# respond_zu antworten, wenn erwähnt
@respond_to('Hello')
def mention_function(message):
post_url = 'https://slack.com/api/chat.postMessage'
token = 'xxxx-xxxxxxxxx…' #Beschreiben des OAuth-Zugriffstokens für Bot-Benutzer
channel = 'xxxxxxx' #Die Zeichenfolge am Ende der Kanal-URL
username = 'Grußbot' #Bot Name
icon_emoji = ':ghost:' #Bildschirmsymbol(Dieses Mal werde ich es zu einem Geist machen)
text = 'Guten Morgen ~' #Geben Sie eine Antwort auf locker zurück
#Beschrieben im JSON-Format
attachments = [{
'text': text,
}]
payload = {
'token': token,
'channel': channel,
'username': username,
'icon_emoji': icon_emoji,
'attachments': json.dumps(attachments)
}
res = requests.post(post_url, data=payload)
print (res.status_code)
# listen_um auf Wörter im Kanal zu antworten
@listen_to('Guten Morgen')
def lesten_function(message):
#Geben Sie eine Antwort auf locker zurück
message.reply('Japanische Gowakarimasen')
Tun Sie dies und senden Sie Hallo und erwähnen Sie zu slacktest
Das Symbol ist ein Geistergrußbot, und Sie werden guten Morgen zurückkehren. Mit chat.postMessage können Sie das Symbol ändern und in json schreiben.
Recommended Posts