Asana用BitBarプラグインを作ってみた
少し前から、個人プロジェクト用に Asana というプロジェクト管理サービスを試しています。
お仕事では Backlog を使っていて、こちらはタスク管理やWiki、ファイル管理にバージョン管理と、プロジェクト管理に必要な機能を全て備えていると言っても過言ではない素晴らしいサービスなのですが、その分お値段もそれなりにすることもあり、個人で使うには敷居が高いです。
Asanaはタスク管理の機能がメインにはなりますが、プロジェクトに参加するメンバーが15名以下なら無料で使えるのが個人用途としては嬉しいところ。
多少クセはあるものの充分に使えそうという印象なので、継続して使っていこうと思っていますが、1つ不満なところは、全体的に若干重たいところでしょうか。
自分としては、その日以降のタスクを時系列順に確認することが多々あるのですが、一覧を表示するのにわりと時間がかかるので、そこが少々ネックです。
自分がふだんのタスク管理として使っているTodoistのように、Chrome拡張などがあると便利だったのですが、AsanaのChrome拡張は見た感じ登録専用のような感じだったので、使っていません。
そこで最近話題になった、Macのメニューバーにいろいろな情報を表示することができるBitBar向けに、Asanaのタスクを表示するプラグインを作ってみました。
できること
こんな感じです。
Asanaは、まずワークスペースという単位があり、その中に複数のプロジェクトを設置することができます。ワークスペースも複数作ることができるので、組織やチームなどで割り当てるのだと思います。
このプラグインでは、あるワークスペースワークスペース内で自分が担当に割り当てられている、かつ期限が設定されているタスクを日付順に表示しています。
ワークスペース表示
この部分を押すとワークスペースをブラウザで開きます。
Asanaのカレンダービューは個人的に気に入っている機能なので、このページを開く機能も付けました。
また、個別のプロジェクトを選ぶと、それぞれのページをブラウザで開きます。
タスク表示
タスクは期限、タスク名、プロジェクトを表示しています。
個々のタスクを選択すると、各タスクのページをブラウザで開きます。
期限が当日までのタスクを赤字で表示しています。
また、個人的にその週に実施するタスクというのを把握したかったので、締め切りがその週の週末(日曜日)までのタスク分で境界を入れています。
使い方
ソースはGitHubにあります。
umi-uyura/node-bitbar-asana: BitBar plugin for Asana
前提
動作はNode v4.4.2で確認しています。
インストール
理由は後述しますが、なんかBitBarプラグインとして微妙な作りにしてしまった気がするので、npmにはあげずにGitHubからインストールします。
$ [sudo] npm i -g umi-uyura/node-bitbar-asana
Personal Access Tokenの取得と設定
AsanaのAPIを使うために、アカウントの Personal Access Token というものが必要になります。
Asanaのヘルプ を見ると、 My Profile Settings という画面内に発行するUIがありそうですが、なくなっています。
新しい発行画面は以下のスクリーンショットのように、 Manage Developer Apps のリンクを選択して、
移動した先の画面で Create New Personal Access Token をクリックします。
Personal Access Tokenは生成直後だけ表示されて、その後見ることができなくなるので、メモっておくのを忘れないようにしてください。
Assignee IDとWorkspace IDの取得と設定
AsanaのAPIを使う際に必要な情報として、誰に割り当てられたタスクなのか(Assignee ID)と、どのワークスペースのタスクを表示するのか(Workspace ID)というものがあります。
これをあらかじめ取得しておくために、 bitbar-asana-me
コマンドを実行します。
$ bitbar-asana-me ID of your name (dummy@example.com) is <assignee id>. Workspace that belongs is as follows. Test workspace (<workspace id>) Lab workspace (<workspace id>)
すると上記のように、自分のAssignee IDと、所属しているワークスペースのWorkspace IDが表示されます。
これを、設定ファイルに記載します。
設定ファイルは、GitHubリポジトリの example/bitbar_asana を落としてきて、 $HOME/.bitbar_asana
として配置します。
設定ファイルには以下のキーが用意されているので、Assignee IDとWorkspace ID、それとPersonal Access Tokenを該当する箇所に記載してください。
Key | Value |
---|---|
BITBAR_ASANA_ACCESSTOKEN |
Personal Access Token |
BITBAR_ASANA_WORKSPACEID |
Workspace ID |
BITBAR_ASANA_ASSIGNEE_ID |
Assignee ID |
BITBAR_ASANA_LANGUAGE |
(optional) 曜日表示部の言語指定ja を指定すれば月・火・水…で表示されます |
BITBAR_ASANA_MENUBARICON |
(optional) メニューバーに表示するアイコンイメージ Base64エンコードした画像データ |
BitBarプラグインの設置
GitHubリポジトリの example/asana.10m.sh をBitBarプラグインフォルダにコピーするだけです。
設定が問題なければ、指定したワークスペースのタスクが表示されると思います。
複数ワークスペースで使う
設定ファイル( example/bitbar_asana )を別のファイル名で用意し、プラグインのスクリプト内で bitbar-asana
の引数としてファイルパスを渡すことで、複数設置することができます。
例としては example/asana_other.10m.sh を参考にしてください。
感想
で、作ってから気付いたのですが、Nodeというか、npmで入れるパッケージにしてしまうと、BitBarプラグインとしては若干ポータビリティが悪いですね。
他のスクリプトを見ても、せいぜい外部のコマンドを叩くくらいにして、基本的にプラグインのスクリプト単独でまとめている感じ。
それを考えると、そもそもNodeってMac標準で入っていないこともあるので、汎用性を考慮するならRubyなどで作ったほうが良かったかも…
とりあえず、自分の目的は達成できているので、気が向いたら作りなおすことにします。
- 作者: 広兼修
- 出版社/メーカー: オーム社
- 発売日: 2014/06/26
- メディア: Kindle版
- この商品を含むブログを見る