私が勤めている会社ではタスク管理アプリとしてヌーラボ社の Backlog という Webアプリケーションを使用しています。
月末の締め処理や月次の報告書作成など定期的に発生する作業のチケットを発行するのに、毎回ブラウザを立ち上げて、画面で色々入力して・・・とするのが面倒だったため、Backlog API を使い画面操作無しでチケットを発行するようにしました。
はじめは手元で Python やシェルスクリプトから Backlog API を叩いてチケットを発行していたのですが、しばらくするとコマンド実行すら面倒になったので現在は Google App Script を使って自動化しています。
この記事では Backlog API の簡単な使い方を説明し、次回以降もう少し進んだ自動化の方法を説明したいと思います。
Contents
公式リファレンス
API Key の取得
Backlog API を使用するにはユーザー認証が必要です。Backlog API は API Key と OAuth2.0 という2つの認証方法に対応していますが、今回は容易に使用できる API Key を使った方法で認証を行います。
API Key は Backlog の個人設定ページから取得することができます。
STEP1.[個人設定]ページを開く
Backlog のページ右上にあるアイコンをクリックしてメニューを開き、[個人設定]ページを開きます。
STEP2.[API]メニューを開く
[個人設定]ページを開いたら、メニューから[API]メニューを開きます。STEP3.[新しいAPIキー]を発行する
[登録]ボタンをクリックして新しいAPIキーを発行します。API Key が第三者に流出するとサービスを不正に利用されてしまうため、厳重に管理してください。
APIの実行
ここからは実際にAPIを実行してみます。
プロジェクト一覧の取得
プロジェクト一覧の取得を例にAPIを実行してみます。
APIを実行するにはcurl コマンドや Rest API クライアントを使用します。
私はTalend API TestというAPI クライアントのChrome拡張を好んで使用しています。
APIの仕様に従い、Talend API Testerにパラメータを設定していきます。
METHOD | GET |
SCHEME | https://{YOUR_HOST_NAME}.backlog.com/api/v2/projects?apiKey={YOUR_API_KEY} |
Sendボタンをクリックするとレスポンスが帰ってきます。
レスポンスの例
[
{
"id": xxxxxx,
"projectKey": "xxxxxx",
"name": "xxxxxxx",
"chartEnabled": true,
"useResolvedForChart": false,
"subtaskingEnabled": true,
"projectLeaderCanEditProjectLeader": false,
"useWiki": true,
"useFileSharing": true,
"useWikiTreeView": true,
"useSubversion": false,
"useGit": true,
"useOriginalImageSizeAtWiki": false,
"textFormattingRule": "markdown",
"archived": false,
"displayOrder": 0,
"useDevAttributes": true
},
{
・・・
}
]
課題の追加
今度は課題を追加するAPIを実行してみます。
課題の追加
先ほどのプロジェクト一覧の取得とは異なり、今度はPOSTメソッドを使用します。
METHOD | POST |
SCHEME | https://{YOUR_HOST_NAME}.backlog.com/api/v2/issues?apiKey={YOUR_API_KEY} |
HEADERS | Content-Type:application/json |
BODY:
{
"projectId": xxxxx,
"summary": "ここにタイトルを書く",
"issueTypeId":"xxxxx",
"priorityId":"xxx",
"assigneeId":"xxxxx",
"description":"ここに課題の内容を書く。\n改行や\n\n* [ ] 箇条書きも書ける"
}
projectId
,issueTypeId
,priorityId
,assigneeId
は固有の値を設定する必要があります。
それぞれ Backlog API のプロジェクト一覧取得、種別一覧の取得、優先度一覧の取得、ユーザー一覧取得のAPIに従って、取得した値を設定してください。
コメントを残す