BacklogAPIで課題を一括取得してJSやGASで配列や連想配列として扱うことがよくあるのでメモしておく。
Backlogの仕様書
GoogleAppsScriptで一括取得
最大100件しか取得できないので、何度もコールします。
パラメータは適宜変更します。
getBacklogIssues.js
function getBacklogIssues(){
var space_id = "スペース名";
var api_key = "APIキー";
var project_id = "プロジェクトID";
var count = 100;//最大取得数100件
var params = "&order=asc";//その他パラメータをご自由に
var issues = [];//結果を格納
while(true){
//課題を取得
var response = UrlFetchApp.fetch("https://" + space_id + ".backlog.jp/api/v2/issues?apiKey=" + api_key + "&projectId[]=" + project_id + "&count=" + count + "&offset=" + issues.length + params);
//エラーの場合は終了
if(response.getResponseCode() != 200) return false;
//配列に追加
issues = issues.concat(JSON.parse(response));
//取得が100件未満ならループから抜ける。
if(JSON.parse(response).length < count) break;
}
return issues;
}
issueKeyがキーの連想配列に変換
PHPのarray_column()的なことをして、単純な配列を連想配列に変える。
arrayColumn.js
function arrayColumn(array, key){
var new_array = {};
for(row in array) new_array[array[row][key]] = array[row];
return new_array;
}
var issues = arrayColumn(getBacklogIssues(), "issueKey");