Pocket => Slack通知

今日は、PocketアプリとSlackを連携したbotスクリプトの作成を行った。

大まかな処理の流れは以下である。

f:id:k12si:20190324020240p:plain

Pocketに入った記事を、スクリプトがクーロン処理により時間とタグでフィルタリングした上でPocket内に溜まった記事を取得。

その記事をSlackに送信するといったbotである。

 

詳しいコードや環境などは以下を参照していただきたい。

https://github.com/k12si/TIL/tree/master/pocket

 

このシステムを作成するにあたり以下のサイトを参考にさせていただいた。

 

つまった点として、Slack送信の際、Slack.chat_postMessageの引数にas_user: trueを指定するとなぜかSlackに送信できなかった。

それとrubyで実行する際、bundle exec ruby <スクリプト>としないとrequireできない。(gemのインストール先をbundle install --path vendor/bundleとしたため)

 

さらに、Pocketのデベロッパー用APIの利用にあたっては以下のサイトを参考させていただいた。

https://syncer.jp/pocket-api-matome

 

また、Slackにおけるattachments表記(この呼び方があっているかわからないが・・・)は以下のサイトを参考にした。

https://qiita.com/daikiojm/items/759ea40c00f9b539a4c8

 

一通り作成したが、以下の2点は改善した方がいいと思っている。

  1. スクリプトのクーロン処理を1日に1回の頻度で行ってる
  2. 記事取得のフィルタリング(23:30にその日にPocketに追加された記事がSlackに送信されるようになっている)

理想としては、クーロン処理をHeroku上で最も頻度の高い10minに1回で回し、前回処理時にSlackに送信した記事は再度送信しないようなフィルタリングにしたい。