Slackbotを起動させたい
「(任意の文字列)++」と打ったら,++を抜いた「(任意の文字列)」のみを返し,「/karma rank」と打ったら「(任意の文字列)」が登場回数順に10位まで表示されるようなSlackのBotをPythonで作ろうと思っています.
Bot自体はどうやらエラーが出ることなく起動するようですが,slack上で「『*/karma*』は有効なコマンドではありません」と出てしまい,実行することができずにいます.
次に,ここに飛んでみたのですがRequest URLに何を設定すれば良いのか分からなかったり,それらを設定するまでの一連の流れが書かれたサイト達のように,交通情報や猫の写真を呼び出したいわけではなく,自分の場合どんなことをすれば良いのか分からず,困っています.
(https://api.slack.com/apps/AQ3BDB3KL/slash-commands?)
もしご存知の方がいらっしゃいましたら解決法と合わせてご教示いただけますと幸いです.
宜しくお願いします.
親ディレクトリ(karma)
・run.py (実行のトリガーとなるスクリプト)
・slackbot_settings.py (botの設定を記述するファイル)
pluginsディレクトリ
・hello.py (botを実行するプロジェクト)←今回の問題はここ
・init.py (空ファイル)
コード
run.py
1#!/usr/bin/python 2# -*- coding: utf-8 -*- 3from slackbot.bot import Bot 4 5def main(): 6 bot = Bot() 7 bot.run() 8 9if __name__ == "__main__": 10 print('starting slackbot') 11 main()
slackbot_settings.py
1#!/usr/bin/python 2# -*- coding: utf-8 -*- 3 4API_TOKEN = “xxx” 5DEFAULT_REPLY = "I dont't understand you." 6PLUGINS = ['plugins']
hello.py
1#!/usr/bin/python 2# -*- coding: utf-8 -*- 3from slackbot.bot import respond_to 4from collections import Counter 5 6@respond_to('(.*)++') 7def reply_id(message, arg): 8 message.reply(arg) 9 #r.zincrby('words', 1.0, w.surface) 10 11@respond_to('/karma rank') 12def reply_rank(message, count): 13 14 count = {} 15 for t in arg: 16 if not t in count: 17 count[t] = 0 18 count[t] += 1 19 20 sc = sorted(counter.items(), key=lambda x: x[1], reverse=True) 21 for i, t in enumerate(sc): 22 if i >= 10: 23 break 24 key, cnt = t 25 print((i + 1), ".", key, "=", cnt)
補足情報(FW/ツールのバージョンなど)
iOS 10.15, Python 3.7.4, Atom
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/20 08:31