2020/04/07

[golang]slack-goのeventsサンプルを動かしたい

以前あきらめた、slackのbotをgolangで作る件だ。
そろそろやろう。

slack/events.go at master · slack-go/slack
https://github.com/slack-go/slack/blob/master/examples/eventsapi/events.go

"TOKEN"が2箇所あるので、そこだけ自分の"xoxb-"で始まるやつと、Verification Tokenというやつに置き換えれば済むはずだ。

しかし、何が悪いのか分からないけど、golang側で動いている形跡がない。
権限などの設定が足りないのか?

 

Basic Information

"Add features and functionality"は、3つ

* Event Subscriptions
* Bots
* Permissions

Verification Tokenはこのページに載っている。

 

OAuth & Permissions

Scopesは、"Bot Token Scopes"だけ。

* app_mentions:read

"xoxb-"出始まるTokenはこのページに載っている。

 

Event Subscriptions

ここのRequest URLが、なんだかすっきりしない。
events.goで"/events-endpoint"となっていたので、ここも"http://x.x.x.x:xxx/events-endpoint"にしたのだよ。あ、ポート番号はgoファイルの下の方で3000番になっていたのだけど、ちょうどiptablesで5000番が空いていたので変更したのだ。

これがよくわからないのだが、goサンプルをrunしていてもいなくても、ブラウザの方ではOKになるのだ。なのに、goの方にはログなども出ない。
あれこれやったところ、どちらも"/evt"にするとアクセスが飛んできた。

こんなbodyが飛んでくる。

{"token":"VTOKENの値","challenge":"ODiveSYjXafQWNBXY9PIIeNLP87Q5KM8gEUVD98rDNajxAebTrta","type":"url_verification"}

 

Subscrie to bot eventsは、"app_mention"を指定。

 

そうして、installなどして、どこかテスト用のチャネルにbotを追加してやって、メンションを投げるとイベントが飛んでくるようになった。
メンションと、Appsの一覧に出てきたアプリ名のところに書き込むのは同じかと思ってたけど、違うのだな。
app_mentionにしているからかもしれないけど、アプリ名以外のところで@つきでメッセージを投げないとダメなようだ。

 

まあいい。
あとは、ここからじわじわ変更していこう。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。