画像系の研究室にいるので、arxivの新規論文はチェックしたいものです
Twitterではこのような新規論文の情報を教えてくれるbotもあるのですが、できればabstractも一緒にみたいなぁ、さらに言えば日本語訳してくれたら便利だなぁ、と
となるとTwitterでは字数が足らないから、slackに垂れ流すbotを作ろうと思って作ってみました
作ったもの
GitHub: https://github.com/kamata1729/arxiv-crawler
以下はこれのreadmeの日本語訳になります
botの動作
使い方
1. slack botを作る
1.1 slack Appとそのbot userを作る
[このページ](https://api.slack.com/apps?new_app=1 to create slack app)を開いてslack Appを作成したください
そのあと、 Bot users もしくはボットユーザーのタブに行って、先ほど作ったAppのbot userを作ります
1.2 権限を付与する
bot userには、メッセージを投稿できるようにpermissionをつける必要があります。
OAuth & Permissions もしくは認証&権限(かな?日本語版ページみてない)のタブを開いて、chat:write:botの権限を付与します。

1.3 slack botをワークスペースにインストール
同じタブからslack botをインストールします
インストールした後、下の画像のように出てくるアクセストークンをメモしておいてください

2. Google Translation APIの設定
さて、今度はGoogle翻訳APIを使えるようにします
このページに行って、コンソールからGoogle Translation APIを使えるようにします
そのあとコンソールの認証情報のタブから、APIキーを取得できるので、そのAPIキーもメモしておいてください。
APIキーの取得方法は、このページがわかりやすいと思います
注意点ですが、このAPIは地味にお金がかかるので、無料トライアルに申し込むことをお勧めします。申し込むと33350円のクレジットが使えるようになります。
3. AWS Lambda にコードをアップロード
3.1 zip ファイルに固める
以下を実行して、arxiv_crawler.zipを作成します
bash make_zip.sh
3.2 zipをAWS Lambdaにアップロード
AWSのコンソールで、アカウントを作ってない場合は作成し、そのあとLambdaのサービスのページに行き、新しいlambda関数を作成します。
↓作成するときはこんな感じです

そのあと、先ほど作成したarxiv_crawler.zipをlambda関数にアップロードします
ハンドラには、 arxiv_crawl.lambda_handlerを書き込んでください
3.3 環境変数を付与
下の画像のように環境変数を設定します。これまでで取得したAPIキーなどです。
CHANNEL_ID はボットは投稿するチャンネルのIDです。
チャンネルidの確認方法は以下のページを参考にしてください
https://qiita.com/YumaInaura/items/0c4f4adb33eb21032c08

3.4 CloudWatch Eventsのトリガーを設定する
CloudWatch Eventsを左側のリストから選ぶと下のようになります

このCloudWatch Eventsのトリガーを、下のように設定します。
cron(0 6 * * ? *)のように書くと、毎日15:00に実行されることになります。
これで完成です!!

