質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

1回答

9418閲覧

slackbotを作成したい

usagimochi

総合スコア12

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

0クリップ

投稿2017/06/04 08:02

###前提・実現したいこと
slackbotを作成したいです.slackbotというライブラリはインストールできています.

###発生している問題・エラーメッセージ
python run.pyを実行すると,

Traceback (most recent call last):
File "run.py", line 7, in <module>
main()
File "run.py", line 3, in main
bot = Bot()
File "/Users/mountain/.pyenv/versions/anaconda3-4.2.0/lib/python3.5/site-packages/slackbot/bot.py", line 25, in init
'BOT_EMOJI') else None
File "/Users/mountain/.pyenv/versions/anaconda3-4.2.0/lib/python3.5/site-packages/slackbot/slackclient.py", line 37, in init
self.rtm_connect()
File "/Users/mountain/.pyenv/versions/anaconda3-4.2.0/lib/python3.5/site-packages/slackbot/slackclient.py", line 40, in rtm_connect
reply = self.webapi.rtm.start().body
File "/Users/mountain/.pyenv/versions/anaconda3-4.2.0/lib/python3.5/site-packages/slacker/init.py", line 596, in start
'mpim_aware': int(mpim_aware),
File "/Users/mountain/.pyenv/versions/anaconda3-4.2.0/lib/python3.5/site-packages/slacker/init.py", line 90, in get
api, **kwargs
File "/Users/mountain/.pyenv/versions/anaconda3-4.2.0/lib/python3.5/site-packages/slacker/init.py", line 72, in _request
raise Error(response.error)
slacker.Error: invalid_auth
このように表示されます.

###該当のソースコード
slackbot_settings.pyにbotの設定を記述しました.以下2行です.
API_TOKEN = "適するAPI_TOKEN"
default_reply = "テスト"

そしてrun.pyにはbotの起動用のコードを記述しました.以下の通りです.
from slackbot.bot import Bot
def main():
bot = Bot()
bot.run()

if name == "main":
main()

###補足情報(言語/FW/ツール等のバージョンなど)
Macで行っています.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

エラーを見た感じでは、Slackの認証に失敗しているように見えます。

まず、単純にslackbot_settings.pyに設定したAPI_TOKENが間違っていないか確認してください。

間違っていなければAPI_KEYがうまくslackbot_settings.pyから読み込まれていないのだと思います。以下のどちらかの方法を試してみてください。

※ 以下の両方やり方ともにrun.pyがあるところにcdしていることが前提です。

  1. 以下のように、頭の2行をrun.pyに追加して実行する。

python

1import sys 2sys.path.insert(0, ".") 3 4from slackbot.bot import Bot 5def main(): 6 bot = Bot() 7 bot.run() 8 9if __name__ == "__main__": 10 main()
  1. run.py実行時に以下のように指定して実行する。

sh

1PYTHONPATH="." python run.py

以上、参考になればと思います。

追記(2017/06/04 21:39)

slackbotのログを出力するようにしたバージョンです。

python

1import sys 2sys.path.insert(0, ".") 3 4import logging 5logging.getLogger().setLevel(logging.INFO) 6 7from slackbot.bot import Bot 8def main(): 9 bot = Bot() 10 bot.run() 11 12if __name__ == "__main__": 13 main()

投稿2017/06/04 08:46

編集2017/06/04 13:18
yukkeorg

総合スコア985

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

usagimochi

2017/06/04 11:08

API_KEYは確認したところ間違ってなかったです. 教えていただいた通り,訂正し直したところ, Traceback (most recent call last): File "run.py", line 9, in <module> if name == "main": NameError: name 'name' is not defined とでてきました.NameErrorと出てきたのでnameを変更したらいいのかと思って,別のものに変えてみたのですが同じ結果になりました. 何が間違っているのでしょうか. 何度もすみません.よろしくお願いします.
yukkeorg

2017/06/04 11:57

すみません。記載しましたソース修正しました。 name ⇒ __name__ です
usagimochi

2017/06/04 12:18 編集

ありがとうございます. 変更して,PYTHINPATH="." python run.pyを実行したら何のエラーもでなくなったので,slackで試しに言葉を打ったのですが,何も表示されなくなりました.どこにエラーがあるかどうすればわかりますでしょうか. Macで作成する際に,API TOKENやアイコンなど設定する画面で,Save Integrationを押すとslackの方にはbotのメンバーとして追加はされています.しかし,API TOKENやアイコンなど設定する画面のAPI TOKENのところでRegenerateと表示されているのですがこれは関係ありますでしょうか? よろしくお願いします.
yukkeorg

2017/06/04 12:52 編集

slackbotが出力しているログを画面に表示できるように回答にプログラムを追記しました。動作確認していないのですが、slackbotのソースを見た感じではINFOレベルのログが出力されるようでしたので、これで確認できるかと思います。これでエラーが出ていない場合はライブラリを適切にできていないかと思いますので、再度slackbotのマニュアルを読み直して見てください。
yukkeorg

2017/06/04 13:17

すみません。修正したプログラムが間違えてましたので、再修正しました。
usagimochi

2017/06/04 13:31

ありがとうございます.やってみます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問