見出し画像

SlackのslashcommandとAWSAPIGatewayとAWSLambdaで翻訳返しbotを作る

SlackのslashcommandとAWSAPIGatewayとAWSLambdaで翻訳返しbotを作ります

この記事の対象となる人

・pythonの基本的な構文が読める人
・AWSのアカウントを持ってる人
・Slackのアカウントを持っている人

筆者の環境は
OS:Windows10
python:pyton3系
です

Mac環境の人などは一部動作が異なる可能性があります
随時読み替えてください

アーキテクチャ

画像1

完成イメージ

画像2

userがチャンネルで「/h 英語」を送信すると、@AppNameが英語を日本語に翻訳したものをチャンネルに返答します

今回使うGoogleの翻訳APIは無料です

詳しくはこちら
https://pypi.org/project/googletrans/

1日の使用回数に制限があるそうなので使用制限がGoogle側からかかることがあるようです。
時々使えないかも?ぐらいの気持ちで作っていきましょう

Lambda関数の準備をする

slackの公式リファレンスを見ると

slackから送られてくるpylordは例えば以下の通りです

token=gIkuvaNzQIHg97ATvDxqgjtO
&team_id=T0001
&team_domain=example
&enterprise_id=E0001
&enterprise_name=Globular%20Construct%20Inc
&channel_id=C2147483705
&channel_name=test
&user_id=U2147483697
&user_name=Steve
&command=/weather
&text=hello
&response_url=https://hooks.slack.com/commands/1234/5678
&trigger_id=13345224609.738474920.8088930838d88f008e0

・slackから送られてきた文字列をまず抜き出したいので
上の例文で行くと「&text=hello」の部分を取得する必要があります


・アプリは、元のリクエストに空のHTTP 200応答を返すだけでこれを実行できます
https://api.slack.com/interactivity/slash-commands

上記を踏まえてコードを用意します

・ご自身のローカル環境にフォルダを用意します。今回は「lambda_workspace」とします。
・「lambda_function.py」に下記のコードを貼り付けて保存してください。

ここから先は

3,487字 / 8画像

¥ 500

この記事が気に入ったらサポートをしてみませんか?