![見出し画像](https://assets.st-note.com/production/uploads/images/28372524/rectangle_large_type_2_b666b10b63ab15ff8271c18d659a3368.png?width=1200)
SlackのslashcommandとAWSAPIGatewayとAWSLambdaで翻訳返しbotを作る
SlackのslashcommandとAWSAPIGatewayとAWSLambdaで翻訳返しbotを作ります
この記事の対象となる人
・pythonの基本的な構文が読める人
・AWSのアカウントを持ってる人
・Slackのアカウントを持っている人
筆者の環境は
OS:Windows10
python:pyton3系
です
Mac環境の人などは一部動作が異なる可能性があります
随時読み替えてください
アーキテクチャ
完成イメージ
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」に下記のコードを貼り付けて保存してください。
ここから先は
¥ 500
Amazonギフトカード5,000円分が当たる
この記事が気に入ったらチップで応援してみませんか?