Backlog を API で操作して、課題追加した結果 URL を取得するまで

Backlog を API 経由で操作してみました。

ライブラリ:BacklogKit(0.18.0)を Ruby で使うのですが、基本的には Qiita に書いてあるやり方を参考にすれば簡単なんでしょうけれども、非プログラマーにとってはドキュメントを見ただけではどう実現すれば良いのかわからない・・・w
参考:RubyでBacklogを操作する – Qiita

ということで、色々と試して出来たことをメモしておきます。

ドメインによっては環境設定が必要

バックログのスペースを開設したタイミングによって、ドメインが異なります。

2017年9月上旬より、Backlogの日本語版および英語版ウェブサイトのドメインを「 backlog.com 」に変更・統一いたします。

これまで、日本国内ではbacklog.jp、海外ではbacklogtool.comという2つのドメインでサービスを提供してきましたが、今後は段階的に、国内も海外も「 backlog.com 」ドメインに統合していきます。

Backlogはサービスのドメインを.comドメインに変更します!(API開発者様へ重要なお願い) | Backlogブログ

BacklogKit v0.18.0 では、「.com」ドメインを対象としているようなので、JP ドメインのスペースを操作するには、Client Config で指定する必要があります。(いきなり躓きました

ENV['BACKLOG_TOP_LEVEL_DOMAIN'] = 'jp'

セッションの作成

# encoding: utf-8

require 'backlog_kit' # 0.18.0

# ドメイン設定
ENV['BACKLOG_TOP_LEVEL_DOMAIN'] = 'jp'

# セッション作成
client = BacklogKit::Client.new(
	space_id: '{スペース ID}',
	api_key: '{API KEY}'
)

セッションを作成してから色々と操作をする感じ。

注意.スペース ID

https://{スペース ID}.backlog.com/dashboard

「スペース名」ではないので注意。

課題の追加

client.create_issue("{件名}",{
	projectId: '{ID}',
	priorityId: '{ID}',
	issueTypeId: '{ID}'
})

この3つの ID が課題の追加には必須のようです。(厳密に言えば「件名」も必須なので、4項目が必須)
参考:課題の追加 | Backlog Developer API | Nulab

必須1.プロジェクト ID

「プロジェクト名」とか「プロジェクトキー」ではないので注意。私は課題一覧の URL から確認しました。

https://{スペース ID}.backlog.com/find/{プロジェクトキー}?condition.projectId={プロジェクト ID}&condition.statusId=(以降省略)

必須2.優先度 ID

  • 5,4・・高
  • 3・・・中
  • 2,1・・低

だったかと思います、多分。

必須3.種別 ID

種別の編集ページの URL を見に行かないと分かりませんでした。

https://{スペース ID}.backlog.com/EditIssueType.action?issueType.id={種別 ID}&issueType.projectId={プロジェクト ID}

API で各一覧を取得すればそれぞれの ID が分かるんでしょうけれども、ね、そもそもその方法がわからないので。

追加した課題の URL を取得する

# 課題追加
result = client.create_issue("{件名}",{
	projectId: '{ID}',
	priorityId: '{ID}',
	issueTypeId: '{ID}'
})

# 課題追加した結果URLを取得
p issue_url = result.headers.location

まとめ

# encoding: utf-8

require 'backlog_kit' # 0.18.0

# ドメイン設定
ENV['BACKLOG_TOP_LEVEL_DOMAIN'] = 'jp'

client = BacklogKit::Client.new(
	space_id: '{スペース ID}',
	api_key: '{API KEY}'
)

result = client.create_issue("APIから",{
	projectId: '{ID}',
	priorityId: '3',
	issueTypeId: '{ID}',
	description: 'Backlog を API で操作して、課題追加した結果 URL を取得するまで'
})

p issue_url = result.headers.location

を実行すると、

yuichon-MBP:backlog_kit yuichon$ bundle exec ruby APITEST.rb
"https://{スペース ID}.backlog.com/view/APITEST-10"

こんな感じで URL が戻ってきました。

backlog API から課題追加

参考リンク

コメントを残す

  • コメント欄には個人情報を入力しないようにしてください。

  • 入力いただいたメールアドレスは公開されませんがサーバーに保存されます。
  • 入力いただいた情報の他に、IPアドレスを取得させていただきます。取得した IPアドレス はスパム・荒らしコメント対処ために利用され、公開することはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください