Backlog API を使ってBacklogを操作する

私が勤めている会社ではタスク管理アプリとしてヌーラボ社の Backlog という Webアプリケーションを使用しています。

月末の締め処理や月次の報告書作成など定期的に発生する作業のチケットを発行するのに、毎回ブラウザを立ち上げて、画面で色々入力して・・・とするのが面倒だったため、Backlog API を使い画面操作無しでチケットを発行するようにしました。

はじめは手元で Python やシェルスクリプトから Backlog API を叩いてチケットを発行していたのですが、しばらくするとコマンド実行すら面倒になったので現在は Google App Script を使って自動化しています。

この記事では Backlog API の簡単な使い方を説明し、次回以降もう少し進んだ自動化の方法を説明したいと思います。

公式リファレンス

Backlog API の公式リファレンスは以下のサイトになります。
公式リファレンス

API Key の取得

Backlog API を使用するにはユーザー認証が必要です。Backlog API は API Key と OAuth2.0 という2つの認証方法に対応していますが、今回は容易に使用できる API Key を使った方法で認証を行います。
API Key は Backlog の個人設定ページから取得することができます。

STEP1.[個人設定]ページを開く

個人設定ページを開く2

Backlog のページ右上にあるアイコンをクリックしてメニューを開き、[個人設定]ページを開きます。

STEP2.[API]メニューを開く

APIメニューを開く
[個人設定]ページを開いたら、メニューから[API]メニューを開きます。

STEP3.[新しいAPIキー]を発行する

新しいAPIキーを発行する
[登録]ボタンをクリックして新しい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}
Talend API Tester1

Sendボタンをクリックするとレスポンスが帰ってきます。
Talend API Tester2

レスポンスの例

[
    {
        "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に従って、取得した値を設定してください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)