はじめに
こんにちは!AWS初心者の踏台です。
AWS使った事はありますか? 私は触ったことがありませんでした。
そんな私がAWSを知るためにSlackBotを作成しました。
作成してどうだったかをこの記事では、書いていこうと思います!!
作った物
「Wiki Bot」という名前のSlackBotを作成しました。
内容としては、Wikipedia に投稿されているアクセス数上位の投稿を取得し、Slackに定期的に投稿するBotです。

作った理由
前提としてAWSを学習する為というのもありますが、世間でどんな事が起こっているか
やんわりと知れるBotがあれば良いなと思ったので、作成しました。
機能
お昼(PM12:00)にWkikpediaで、アクセス数の多かった記事をURLと共に3件投稿してくれます。
表示内容
- 記事のタイトル
- 閲覧数
- URLとプレビュー

記事の投稿方法
Wiki BotではSlackに対して記事を投稿するのみ、だったのでIncoming Webhooksを使用しました。
Incoming WebhooksはPostでメッセージを送信する事が出来るので、Wiki Botにピッタリです。
記事の取得方法
記事の取得にはWikipediaのパブリックAPIを使用しました。
例)2015 年 10 月 10 日に**日本**で 最もアクセスされた記事の上位 1,000 件を取得します。
https://wikimedia.org/api/rest_v1/metrics/pageviews/top/jp.wikipedia/all-access/2015/10/10
apiを呼び出すだけで、アクセス数上位1000件を取得出来るのでとても便利でした。
構成
AWSのEventBridgeとLambdaを用いてSlackBotを作成しました。
処理フローは以下の通りです。

困った事 Slackのプレビューが表示されない
Wiki Botでurlを投稿した際に何故かプレビュー表示されませんでした。(手動だと表示される)

色々原因を調査したところ、WebHooksではプレビューを表示する際、bodyにunfurl_linksのflagを持たせなければプレビューが表示されない事がわかりました。
これが原因かなと思ったのでプログラムを修正して、もう一度動かしましたが、それでも
プレビューは表示されませんでした。
何で表示されないのかなーと色々試したのですが原因分からず、プレビュー使うのを
諦めようとした途端に表示されるようになりました。
どうもSlackには同じチャンネル内で、同じURLを投稿した際に1度表示したプレビューは、
表示されない仕組みがあるみたいです。
本来はプレビューが表示されない場合、ポップアップが表示されます。
ですが、今回Bot側で投稿している為、プレビューが表示されない旨のポップアップ
も無く、気づきませんでした...
元のプレビューを表示してから1時間経過した結果、プレビューが表示されるようになり
どうにか気づけた次第です。
AWS触ってみて
AWSを触ってみた感想なのですが、とても楽だなと思いました。
SlackBotを作るだけなら、面倒な環境構築も無くすぐに動かせる所が良かったです。
(今回どちらかといえば、Slack側で詰まりました...)
Amplifyなどにも興味を持ったので、今後もAWSを触っていこうと思いました。
以上、最後まで読んでいただき、ありがとうございました!
