kivantium活動日記

プログラムを使っていろいろやります

arXivのリンクを貼ったら展開するSlack bot

Slackにはリンクを貼ったときに展開 (unfurl) する機能があります。
f:id:kivantium:20180418193058p:plain

この展開はリンクが貼られたときにoEmbedサーバー, Twitterカード/Facebook Open Graph, HTML metaタグの順に見にいくことで行われています
しかし、arXivにはその情報がないのでリンクを貼っても展開されません。

そこでリンクを貼ったら展開するSlackボットを作りました。

仕組み

SlackのReal Time Messaging APIを使ってメッセージを監視しておき、arxivへのリンクが貼られたら情報を取得して、Slackのattachmentという機能でタイトルとabstractの最初の140文字を取得してそれっぽく表示します。

使い方

https://slack.com/apps/A0F7YS25R-bots から自分のワークスペースに新しいbotを作成してAPI Tokenを下のコードの伏せ字になっている部分にコピペします。
必要なチャンネルにbotをinviteしておき、下のコードを実行しておくとarxivのリンクが貼られたときに展開してくれます。サーバーとかでずっと動かしておいてください。
f:id:kivantium:20180418200140j:plain

gist.github.com

bot名が表示されてほしくないんだけど

わかる。

Twitterの展開みたいな展開を行うためにはEvents APIをサポートするAppを作る必要があるのですが、そのためにはリンクが貼られたときにSlackがそのイベントを送信するURLを用意する必要があってとても面倒くさいのでやめました。

頑張りたい人は
api.slack.com
を読んでください。

特定商取引法に定められた事項は請求により遅滞なく提供する