share facebook facebook twitter menu hatena pocket slack

2019.06.04 TUE

BacklogでAPI指定用のユーザーIDを取得するシェル

高橋 修一

WRITTEN BY 高橋 修一

BacklogAPIでユーザーIDを指定して情報を取得する場合のユーザーIDは
ユーザ情報から見れる「tarou」のようなIDではなく、10XXXXXXXX のような数字のほうのIDを指定してやる必要があります。

これが画面からは確認できなかったのでAPIを叩いて確認します。

方法

方法として思いつくのは

  • (1) ユーザー一覧から取得
  • (2) 特定プロジェクトのユーザー一覧から取得
  • (3) 課題からユーザー取得

の3つ

それぞれ以下の制限があります。

(1) ユーザー一覧から取得

これは管理者権限がないと取得できません。
(管理者権限をもつユーザーが発行したAPIキーが必要)

(2) 特定プロジェクトのユーザー一覧から取得

管理者権限がなくても取得できます。
ただ、登録解除したユーザーのIDは取得できません。

(3) 課題からユーザー取得

管理者権限がなくても取得できます。
登録解除したユーザーのIDも取得できました。
目的のユーザーが更新したことのある課題をみつけて指定してやる必要があります。

指定するパラメータについて

スペースIDとAPIキーの指定が必要ですが、それについては以下を参照ください。

(1) ユーザー一覧から取得

管理者権限が必要。
で、私は管理者権限を持っていないので、この方法は試せていません。

なので動作確認できてませんがシェルだけ書いたので、権限持ってる人で試しもらえると嬉しいです。☺

Backlog API:ユーザー一覧の取得を叩くだけ。

user_list.sh

#!/usr/bin/env bash

# parameter
if [ $# -ne 2 ]; then
    CMDNAME=`basename $0`
    echo "Usage: $CMDNAME <space> <api-key>" 1>&2
    exit 1
fi
SPACE=$1
API_KEY=$2

# execute
url="https://${SPACE}.backlog.jp/api/v2/users?apiKey=${API_KEY}"
curl --globoff ${url}

exit 0

「スペースID」「APIキー」を指定して実行

$ sh user_list.sh xxx ffffffffffffffff

(2) 特定プロジェクトのユーザー一覧から取得

Backlog API:プロジェクトユーザー一覧の取得 を叩くだけ。

project_user_list.sh

#!/usr/bin/env bash

# parameter
if [ $# -ne 3 ]; then
    CMDNAME=`basename $0`
    echo "Usage: $CMDNAME <space> <api-key> <projectIdOrKey>" 1>&2
    exit 1
fi
SPACE=$1
API_KEY=$2
projectIdOrKey=$3

# execute
url="https://${SPACE}.backlog.jp/api/v2/projects/${projectIdOrKey}/users?apiKey=${API_KEY}"
curl --globoff ${url}

exit 0

「スペースID」「APIキー」「プロジェクトIDまたはキー」 を指定して実行

$ sh project_user_list.sh xxx ffffffffffffffff TEST_PJ

この記事ではシェルで書いていますが、
phpであれば この記事が同じ方法で、わかりやすく書かれていました。

(3) 課題からユーザー取得

Backlog API:プロジェクトユーザー一覧の取得 を叩くだけ。

issue_detail.sh

#!/usr/bin/env bash

# parameter
if [ $# -ne 3 ]; then
    CMDNAME=`basename $0`
    echo "Usage: $CMDNAME <space> <api-key> <issueIdOrKey>" 1>&2
    exit 1
fi
SPACE=$1
API_KEY=$2
issueIdOrKey=$3

# execute
url="https://${SPACE}.backlog.jp/api/v2/issues/${issueIdOrKey}?apiKey=${API_KEY}"
curl --globoff ${url}

exit 0

「スペースID」「APIキー」「課題IDまたはキー」を指定して実行

$ sh project_user_list.sh xxx ffffffffffffffff TEST_PJ-100

ドバッと課題コメントジョイ右方など取れます。その中にあるassigneeのidなどからユーザーIDを特定可能です。

元記事はこちら

BacklogでAPI指定用のユーザーIDを取得するシェル

高橋 修一

高橋 修一

社内サービスの開発を主にやっています。大阪オフィス所属。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。