Backlog APIをExcel VBAから呼び出すライブラリvba-backlogを作成しました。
MITライセンスでGitHubに公開しています。
https://github.com/kazusapg/vba-backlog
JSONパーサにはVBA-JSON v2.3.1をフォークして改修したものを使っています。
導入手順
VBE(Visual Basic Editor)で参照設定を2つ追加します。
参照設定の方法は以下をご覧ください。
- Microsoft Scripting Runtime
- Microsoft XML v6.0
続いて、src/フォルダ配下の.basと.clsをすべてVBEにインポートします。
使い方
クライアントの初期化
Dim client As BacklogClient
Set client = New BacklogClient
Call client.Init("https://xxxx.backlog.jp", "APIキー")
第1引数にはBacklogのスペースURLを渡します。
末尾にスラッシュが付いていても、Initが自動で除去します。
課題一覧の取得
検索条件は公式ドキュメントのパラメータ名をそのままキーにしてDictionaryで渡します。
Dim queryDic As Dictionary
Set queryDic = New Dictionary
'複数指定する場合はCollectionを値にする(内部でprojectId[]=v1&projectId[]=v2に展開)
queryDic.Add "projectId[]", 1073836557
queryDic.Add "count", 20
Dim issueList As Collection
Set issueList = client.GetIssues(queryDic)
Dim item As Variant
For Each item In issueList
Debug.Print item.IssueKey, item.StatusName, item.Summary
Next
クライアントは課題をIssueクラスに変換して返します。
課題の追加
Dim paramsDic As Dictionary
Set paramsDic = New Dictionary
paramsDic.Add "projectId", 1073836557
paramsDic.Add "summary", "タイトル"
paramsDic.Add "issueTypeId", 1074178720
paramsDic.Add "priorityId", 3
Dim newIssue As Issue
Set newIssue = client.CreateIssue(paramsDic)
Debug.Print newIssue.IssueKey
コメントの追加
Dim paramsDic As Dictionary
Set paramsDic = New Dictionary
paramsDic.Add "content", "対応しました。ご確認ください。"
Dim comment As BacklogComment
Set comment = client.CreateIssueComment("PROJ-123", paramsDic)
Debug.Print comment.Id
エラー処理
HTTPステータスが400以上だと、クライアントがErr.Raiseで例外を発生させます。
詳細はクライアントのLastErrorプロパティから取得できます。
Sub Example()
On Error GoTo ErrorHandler
Dim issue As Issue
Set issue = client.GetIssue("TEST-1")
GoTo Finally
ErrorHandler:
Debug.Print Err.Description
Debug.Print client.LastError.StatusCode '→ 404
Debug.Print client.LastError.FirstMessage '→ "No project."
Finally:
Set client = Nothing
End Sub