0
0

More than 3 years have passed since last update.

Slack app + AWS Lambda + API Gateway でつまづいた話

Last updated at Posted at 2021-06-03

はじめに

去年、QA業務の契約社員として仕事に復帰してから早半年が経ちまして、何か新しいスキルを得たい+掌で腐っているJava 8 Goldをちょっと役立たせたいということで、何かChat Bot的なものを作ろうと思いました。

そこで先輩諸兄の記事を参考、もといコピペしてとりあえず動くものを手元に置いて学習していこうと思ったのですが、コピペすらままならない残念なことになり暫く頭を抱えながらあぁでもないこうでもないと試行錯誤して、3時間ほどでコピペに成功しました。コピペで3時間ってお前…。

参考記事が悪いのではなく、無知のままトライしていった僕がそもそもアホだった、と前置きしておきます。念のため。

というわけで、何とかうまくいった訳ですが、つまづいたところをメモでもしておかないと鳥頭の僕は一瞬で忘れてしまうため、こうして備忘録をちまちまと書いた次第です。

参考記事

https://qiita.com/kamata1729/items/8d88ea10dd3bb61fa6cc
https://qiita.com/kamata1729/items/fc6c31a3039599b48305
感謝。

コード

ほとんど参考記事そのままなので省略。開発環境はEclipse、ビルドはMaven。どうもEclipseから直接Lambdaへアップロードするとテスト失敗するのは今も謎。ビルドしたjarファイルをブラウザ経由でアップロードすることで動くものは出来ました。

非同期処理はほぼ2つ目の記事そのまま。Node.jsのasyncでも出来るのかもしれない…?

つまづいたところ:Slack

botのuser idってどこに書いてあるの?

  1. とりあえずワークスペースにアプリをインストールする
  2. Slackアプリを開いて ▼App下に表示されている(はず)のインストールしたアプリをクリックする
  3. 右上の :exclamation: をクリックする
  4. その他をクリックする

「メンバーIDをコピー」に表示されている Uから始まる文字列がbotのuser id。これをlambdaの環境変数にぶち込めばOK。
image.png

つまづいたところ:lambda

環境変数を間違って設定していた。原因を掘り下げるのに無駄に時間がかかってしまった。

具体的には、SLACK_APP_AUTH_TOKENのxoxp-から始まるものと、SLACK_BOT_USER_ACCESS_TOKENのxoxb-から始まるものをあべこべに設定してしまった。

結果、アプリにメンションつけてチャットしてもbotではなく自分が返事している状態になっていた。バカ。

lambda側で設定する環境変数名とトークンが合っているのが普通・当たり前だろうという先入観のせいで、そこかよ!ってなるまで時間がかかってしまった。

さいごに

他にもつまづいたところがあったかもしれない。思い出したら追記していこうと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0