logo header
logo header
logo header
logo header
  • 2015.07.02
  • 技術ブログ

Lodgeの新着記事を通知したい

こんにちは、久しぶりのmentaikoです。

みなさんはどのようにして情報を共有されているでしょうか?
弊社では技術ネタを共有するためにQiitaクローンのLodgeを利用しています。
導入当初は利用者が少なくどうやれば知ってもらえるか考え、当時利用していたidobataにFluentd経由で新着記事を通知する仕組みを作りました。

 

idobataに新着記事を通知する仕組み

以下は新着記事を通知するシーケンス図です。

sequence

まず、Lodgeは外部向けのAPIやWebhookがないので新着記事の取り出す方法で悩むのですが、
幸いにもLodgeのログにSQLが出力されるので記事詳細を表示する際のSQLを利用しました。
以下は通知用に作成したSQLで、投稿された記事の投稿者ID、記事タイトル、投稿者名、記事のタグ、作成日時、更新日時を取得できます。

記事情報を取得できれば占めたものなので、以下のfluent pluginを組み合わせてidobataのWebhook経由で通知します。

利用したfluent plugin

td-agent.confの抜粋

クエリの実行間隔はデフォルトの1分なので、SQLの検索範囲も過去1分以内にしています。

これで1分以内に新着記事を通知できるようになりました。
また、この仕組みで社内の認知度も上がり利用者を増やすことができました。

以上、Lodgeの新着記事を通知する方法の紹介でした。
今回は通知先がidobataでしたが、他のメッセージングサービスにも簡単に応用できると思います。

ともに世界をアップグレードできる、そんな日を夢見て。
Upgrade the World!