PowerCMS ブログ

2013年05月16日

Movable Type のシステムから送信されるメールを Backlog の課題に登録する

Backlog[バックログ]は株式会社ヌーラボの提供するプロジェクト管理ツールです。API (http://www.backlog.jp/api/) が用意されているため、Movable Type から課題を登録するプラグインを作成しました。

※MT 5.2.4で動作確認済み。但し exlib以下のURIモジュールをバージョン1.6以上にしてください。

今回は、mail_filter (MTがメールを送信するタイミングで発行される) コールバックに対応し、メールの件名をBacklogの「課題の件名」、メール本文を「課題の詳細」として登録するようにしました (PowerCMSがなくてもMTにインストールして利用できます)。

活用シーン

  • コメントを問い合わせフォーム代わりにしている時、コメント通知メールをそのままBacklogの課題に登録する
  • コミュニティブログへの投稿があった際に通知メールをBacklogの課題に登録する
  • PowerCMSのフォーム機能 (ContactForm) と組み合わせて管理者向けメールをBacklogの課題に登録する

プラグイン設定

設定はシステムプラグイン設定、または各ウェブサイト/ブログのプラグイン設定で行います。

プラグイン設定のキャプチャ
システムプラグイン設定を使用する (ウェブサイト/ブログのみ)
チェックを入れるとウェブサイト/ブログの設定は無視され、システムプラグインの設定が使われます。
スペースID (必須)
BacklogスペースのURLが https://powercms.backlog.jp の場合、スペースIDは「powercms」となります。
ユーザー名 (必須)
課題を登録するBacklogのユーザー名。このユーザーが課題を登録したことになります。
パスワード (必須)
Backlogにログインするユーザーのパスワードを入力します。
プロジェクトID (必須)
プロジェクトの画面に遷移し、「プロジェクトの設定」をクリックすると https://[スペースID].backlog.jp/EditProject.action?project.id=[プロジェクトID] となります。この数字を入力します。

ここまでが必須項目です。これ以降はオプション設定となります。

種別ID
プロジェクト設定から、左タブの「種別の編集」タブをクリックし、指定する項目をクリックすると https://[スペースID].backlog.jp/EditIssueType.action?issueType.id=[種別ID] となります。この数字を入力します。

種別IDの確認方法
カテゴリID
プロジェクト設定から、左タブの「カテゴリーの編集」タブをクリックし、指定するカテゴリーをクリックすると https://[スペースID].backlog.jp/EditComponent.action?component.id=[種別ID] となります。この数字を入力します。
担当者ID
課題をアサインする担当者のIDを入力します。課題を担当者別に検索した際にURLが https://[スペースID].backlog.jp/FindIssue.action?...condition.assignerId=[担当者ID]&condition.createdRange.begin... のようになります。この数字を入力します。
優先度
プラグインからAPI経由で登録した課題の優先度を「高」「中」「低」から選択します。
フレーズ
メールの本文にここで指定したフレーズを含むメールのみ課題として登録します。課題として登録したいメールテンプレートに含めておくと良いでしょう。

コールバック (プラグインによるカスタマイズ)

課題に登録する内容をプラグインでカスタマイズすることが可能です。以下の2つのコールバックが用意されています (括弧内は引数)。コールバックに対応したMTのプラグインを作成することで、コメントカスタムフィールドの値によって優先度を変えたり、フォームの値によって課題の項目をカスタマイズできるようになります。

backlog_pre_create_issue( $cb, $app, $params )
Backlogに課題を登録する直前に登録する内容を $params (ハッシュリファレンス) にセットしてコールされます。$params に様々な値をセットもしくは既にセットされている値に処理を入れることで、登録する課題の内容をカスタマイズできます。コールバックの返り値に0を指定すると課題の登録はキャンセルされます。
backlog_post_create_issue( $cb, $app, $params, $created_issue )
Backlogに課題を登録した直後にAPIにポストした内容を $params (ハッシュリファレンス)、APIのレスポンスを $created_issue (ハッシュリファレンス) にセットしてコールされます。このコールバックの返り値に0を指定するとMTからのメール送信はキャンセルされます (Backlogからメールを送信する設定にしている場合は重複を避けるためにキャンセルしても良いと思います)。

BacklogのAPIについて

課題を登録するAPI (XML-RPC) の仕様についてはドキュメントを参考にしてください。

※何となくですが、このBacklogのAPIドキュメントのCMS、Movable Typeではないかしら?

カテゴリー
プラグイン

ページの先頭へ