uchimanajet7のメモスマートフォン用の表示で見るuchimanajet7のメモこの広告は、90日以上更新していないブログに表示しています。いう開発者向けのイベントに参加してきました。Cloud9を動かしてライブコーディングがあったりして、2回目以降の開催にも楽しみになる感じのイベントでした。ポリシーを自動生成してくれるのが素敵なのが気に入っているので、これまでも↓uchimanajet7.hatenablog.comuchimanajet7.hatenablog.comuchimanajet7.hatenablog.comな感じで使ってみています。いう開発者向けのイベントに参加してきました。slackdevtokyo.splashthat.comその中で紹介されていた、emojiリアクションでメッセージを翻訳するbotをつくるというのがちょー楽しそうだったんです。Imurawww.slideshare.netJavaScriptで作られたbotのコードは公開されていて、Herokuへのデプロイならデプロイボタンもあってちょー楽そう。使って公開されているslackapi/reacjilatorと同じように動くものを作ってみました。slackapi/reacjilatorをchalice利用して実装し直しただけになります。変更点はGoogle翻訳は無料枠がないので、次の資料を参考にして無料の翻訳APIを利用するようにしてあります。APIを使ってみました。マイクロソフトアカウントの登録方法なんかは以前書いたAzureの記事をご覧ください。uchimanajet7.hatenablog.comコードは量も多くないので他の翻訳APIに変更するのも大変ではないと思います。当然ですが翻訳APIを利用するということはAPIに文字列を送信するということなので、十分理解した上で翻訳APIの利用先と利用を決めてください。Wikipediahttps://ja.wikipedia.org/wiki/Yandex翻訳APIの利用登録は非常に簡単で、GoogleアカウントがあればログインしてAPIキーを取得するだけで利用開始できます。tech.yandex.comドキュメントもAPIそのものも非常にシンプルなので、特に困るところはないかと思います。動作を確認するとかそういう用途では手軽で嬉しいですね。実際に利用する際にはAPIに文字列が送信されるということを考えてお使いください。GatewayのエンドポイントとLambdaを利用できるようになります。翻訳APIを他のものに切り替える場合は、APIを呼び出す部分を個別に実装すれば切り替えできると思います。国旗絵文字の文字列から翻訳APIに渡すための変換は↓を参考にしてください。SNSから呼び出されるものがあります。これはSlackのAPIがリクエストを受けてから、一定時間内にレスポンスを返さないとリクエストを再送する仕組みがあり、Lambdaのコールドスタート時に複数のリクエストが送信される可能性を低くするためです。SNSなどの他リソースを同時に構築することができます。documentationhttp://chalice.readthedocs.io/en/latest/topics/cfn.html使ってみる国旗絵文字をリアクションすると、その国の言葉に翻訳されます。翻訳API側が対応してないとbotからの返答がないようにしてあります。(ja-en)のように、翻訳元の言語と翻訳先の言語がわかるようにはしてあります。上記の例だとja(日本語)からen(英語)となります。639-1のコードと同等のようです。Wikipediahttps://en.wikipedia.org/wiki/List_of_ISO_639-2_codesまとめ勉強会やイベントに行くと知らないことや、やってみたいことのきっかけになるのはやっぱりいいな入出力にSlackを使うのは手軽だし分かりやすい今回みたいなBotだと全チャンネルではなく、特定のチャンネルにデプロイしたい。外部APIに文字列を送るとなると予期せず動作するのは好ましくない気がする。今回はプログラム側で許可するチャンネル一覧を持って対処した。今回は利用してないが、他の翻訳APIも複数利用する場合とかあればX−Rayも使ってみたいdocs.aws.amazon.comやっぱりわくわくしながら作るのは楽しくて良いですやはり楽しいは正義ですね以上になります。I?はてなブログをはじめよう!uchimanajet7さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。