kubell Creator's Note

株式会社kubellのエンジニアのブログです。

ビジネスチャット「Chatwork」のエンジニアのブログです。

読者になる

EmacsでChatwork上のタスクを確認できるようにする

こんにちは、認証グループの横井です。

Emacsを使用していると、様々なものをEmacs上に集約していきたくなりますよね。 そこで、EmacsでChatwork上に存在するタスクを確認できるようなプラグインを作成しました。

この記事は kubell Advent Calendarの12/11の投稿です。

Emacs Dashboardの話

私は普段テキストエディタとしてEmacsを愛用しています。

Emacsではdashboardというプラグインで、 起動時に様々な情報(頻繁に使用するディレクトリや最近使用したディレクトリなど)を表示することができます。

Emacsのorg-agenda(タスクを収集しまとめる機能)を表示することもでき、これによりタスクをEmacsを開いた瞬間に確認できるようになります。

ダッシュボードの様子
ダッシュボードの様子

Chatworkを使用していると、Chatwork上でタスクを振られることが多々あります。 せっかくEmacsのトップページにタスクが表示されるのに、様々な箇所にタスク管理が分散していると見逃しが発生するので、 Chatwork上に存在するタスクについてもdashboardに表示されるようにしました。

作成したプラグインはこちらです。

github.com

使用方法

(use-package chatwork-task-sync
  :vc (:url "https://github.com/chmod700yokoish/emacs-chatwork-task-sync" :rev :newest)
  :config
  (setq chatwork-api-token "XXXXXXXXXXX")
  (setq chatwork-task-sync-org-file "~/.emacs.d/org/chatwork-tasks.org"))

上記例ではinit.elに直接Chatwork APIトークンを記述していますが、 コミットしたりする必要がある場合は必ず環境変数やauth-source等を使用してください。

設定後、M-x chatwork-task-sync-save-to-fileを実行することで、Chatwork上での自分宛のタスクが指定したファイルに書き込まれます。

作成されるファイルはこのようになります。

作成されるファイルの中身
作成されるファイルの中身

これをorg-agenda-filesで読み込まれているディレクトリに追加することで、ダッシュボードに表示することができます。 さらに、Emacs起動時に自動でchatwork-task-sync-save-to-fileを実行するようにすれば、常に Chatwork 上のタスクが Emacs のトップ画面に 表示されるようになります!

ダッシュボードにChatwork上のタスクが表示されている様子
ダッシュボードにChatwork上のタスクが表示されている様子

まとめ

Chatwork APIを使用し、Chatwork上のタスクをEmacsで表示することができました。

今回は取得し表示するだけですが、Emacs上からタスクの完了などもできるようになるとさらに利便性が増すように思います。