前提・実現したいこと
Pythonを利用してSlackBotを作成したい。
下記のサイトにてbotを作成する手段で行い
https://api.slack.com/
参考にしたサイトは下記
https://techacademy.jp/magazine/27979
https://qiita.com/kunitaya/items/690028e33ba5c666f3e2
です。
発生している問題・エラーメッセージ
$ python3 run.py start slackbot Traceback (most recent call last): File "run.py", line 11, in <module> main() File "run.py", line 6, in main bot = Bot() ~~~省略~~~ File "/Users/hoge/.anyenv/envs/pyenv/versions/3.8.3/lib/python3.8/site-packages/slacker/__init__.py", line 102, in _request raise Error(response.error) slacker.Error: missing_scope
該当のソースコード
ほとんど参考先のソースコードです。
run.py
Python
1# coding: utf-8 2 3from slackbot.bot import Bot 4 5def main(): 6 bot = Bot() 7 bot.run() 8 9if __name__ == "__main__": 10 print('start slackbot') 11 main()
# coding: utf-8 # botアカウントのトークンを指定 API_TOKEN = "xoxp-0000000000000-0000000000000-0000000000000-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # このbot宛のメッセージで、どの応答にも当てはまらない場合の応答文字列 DEFAULT_REPLY = "何言ってんだこいつ" # プラグインスクリプトを置いてあるサブディレクトリ名のリスト PLUGINS = ['plugins']
試したこと
その他teratailにて類似の質問がありましたが、エラーの文が基本的にAPIのトークンが誤っている、
もしくは実行する際のディレクトリの位置を指摘するものがありました。
今回のスコープに関する質問がなかったため今回質問することにいたしました。
現在SlackAPIのUIが参考にしたサイトと変化しておりその点で見落としてしまった可能性は十分にあります。
参考にしたサイトの例で行くとBot UserというカテゴリーがなくなりHomeみたいな場所に移動している。
上のOAuth Access TokenをAPI_TOKENに記載しています.
###トークンの情報
Bot Token Scopes
app_mentions:read calls:read calls:write im:read mpim:read
User Token Scopes
admin calls:read calls:write channels:history channels:read chat:write files:read files:write identify im:history im:read im:write mpim:read mpim:write users:read users:read.email channels:write groups:read
本来なら必要な権限のみを付与して作成をしていきたかったのですが、
諦めてほとんどのscopeを入れる形となってしまいましたが、結果的に同様のエラーが出てきてしまいました。
スコープが足りないということは理解しているのですが、これ以上のスコープを入れるとあまり良くないかと思い、管理者権限のみにしか入れられない(admin.anaryticsなど)ものもあるのでそういったものは除外しています。
実際にSlackApp内にあるbotsを使いトークンを与えると通常通り実行ができたのですが、
どうせなら制約なしに色々と作成してみたいので今回の実装をしたいと思っています。
スコープが足りない、それ以前のSlackの設定が悪いのかがわかりませんが
どなたか教えていただけると幸いです。
追記
tokenが上ではなく、もしかして下のトークンを利用するのかと思い実行してみると
下記のようなエラーが出てきてしましました。
やはり上のトークンを使うんじゃないかと考えています。
slacker.Error: not_allowed_token_type
補足情報(FW/ツールのバージョンなど)
pyCharm CE
python version 3.8.2
あなたの回答
tips
プレビュー