画像系の研究室にいるので、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に実行されることになります。
これで完成です!!