BacklogAPIでユーザーIDを指定して情報を取得する場合のユーザーIDは
ユーザ情報から見れる「tarou」のようなIDではなく、10XXXXXXXX のような数字のほうのIDを指定してやる必要があります。
これが画面からは確認できなかったのでAPIを叩いて確認します。
方法
方法として思いつくのは
- (1) ユーザー一覧から取得
- (2) 特定プロジェクトのユーザー一覧から取得
- (3) 課題からユーザー取得
の3つ
それぞれ以下の制限があります。
(1) ユーザー一覧から取得
これは管理者権限がないと取得できません。
(管理者権限をもつユーザーが発行したAPIキーが必要)
(2) 特定プロジェクトのユーザー一覧から取得
管理者権限がなくても取得できます。
ただ、登録解除したユーザーのIDは取得できません。
(3) 課題からユーザー取得
管理者権限がなくても取得できます。
登録解除したユーザーのIDも取得できました。
目的のユーザーが更新したことのある課題をみつけて指定してやる必要があります。
指定するパラメータについて
スペースIDとAPIキーの指定が必要ですが、それについては以下を参照ください。
(1) ユーザー一覧から取得
管理者権限が必要。
で、私は管理者権限を持っていないので、この方法は試せていません。
なので動作確認できてませんがシェルだけ書いたので、権限持ってる人で試しもらえると嬉しいです。
Backlog API:ユーザー一覧の取得 を叩くだけ。
#!/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:プロジェクトユーザー一覧の取得 を叩くだけ。
#!/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:課題情報の取得 を叩くだけ。
#!/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を特定可能です。