TROCCO®のHTTPコネクタを活用してBacklogのプロジェクトの課題一覧をBigQueryに転送する

:::note warn

TROCCO®のコネクタがアップデートされ、2025年4月21日に転送元Backlogがリリースされました！今後はBacklogコネクタをご利用ください。

https://documents.trocco.io/docs/release-notes

https://x.com/trocco_jp/status/1911736180535939389


また、primeNumber社員がBacklogコネクタについて書いたQiitaの記事もありますので、利用時にご活用頂ければ幸いです。

https://qiita.com/MK0000/items/d7b9b9c112ad6982b6ac

:::

# はじめに
Backlogとは株式会社ヌーラボが提供するプロジェクト管理ツールです。

プロジェクト管理をする際に、複数のプロジェクトで俯瞰的に各タスクの状況を把握する場合があります。Backlog上からでは、プロジェクト横断的に各タスクの状況を見れる機能がないため、タスク管理をする上で難しさを感じることがあります。

Backlog APIでは、[「課題一覧」](https://developer.nulab.com/ja/docs/backlog/api/2/get-issue-list/)というタスク状況のわかるデータが取得できます。
API経由で複数プロジェクトの「課題一覧」のデータを取得し、集計して可視化を行うことで、複数プロジェクトのタスク管理を同時並行で進めることができます。

今回の記事ではTROCCO®のHTTPコネクタを活用し、Backlog APIから取れるプロジェクトの「課題一覧」のデータを、BigQueryに転送する方法を紹介します。

# 事前準備
### TROCCO®アカウントの作成
TROCCO®アカウントの作成をお願いします。
TROCCO®には無料で始められるフリープランがあります。

https://trocco.io/lp/index.html

### Backlogの作成
すでにBacklogアカウントがあり、プロジェクトが存在していることを前提とします。

https://backlog.com/ja/

### OAuth2.0認証と認可の設定
Backlog APIとTROCCO®との接続には[OAuth2.0](https://developer.nulab.com/ja/docs/backlog/auth/)を用いて行います。
[Backlog Developerサイト](https://backlog.com/developer/applications)からBacklogアプリケーションの登録を行い、アプリケーションの情報をTROCCO®上に登録させる必要があります。

まず、TROCCO®のホーム画面の「接続情報一覧」から「接続情報の新規作成（サービスの選択）」を行い、「HTTP・HTTPS」を選択します。

![スクリーンショット 2024-06-27 10.16.03 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/1d8f9d17-9340-1132-76a2-f82ca9b1a4c6.png)

「HTTP・HTTPS」選択後、「接続情報の作成・設定」画面に飛び、Backlog Developer上で必要な、TROCCO®のリダイレクトエンドポイントを確認します。

![スクリーンショット 2024-06-27 10.10.13 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/4968eb3c-41e6-50ab-2590-37dd60314953.png)


次にBacklog Developerサイトから、Backlogアプリケーションの登録を行います。
TROCCO®のリダイレクトエンドポイントを記載し、作成ボタンを押します。

![スクリーンショット 2024-06-25 16.56.42 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/5fb393a5-92d8-7cb6-7c2a-ff2eb8654c31.png)

作成ボタンを押すと、TROCCO®と接続するためのClinet Idと Client Secretが発行されます。

![スクリーンショット 2024-06-25 16.55.07 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/4d252612-d199-0900-97b4-73249b37a0ad.png)


最後にTROCCO®上でBacklogアプリケーションの接続情報を登録します。

TROCCO®の「接続情報の作成・設定」から「作成したアプリ情報の入力へ」のページに飛び、Backlogアプリケーションで作成したClinet Idと Client Secretを登録します。

![スクリーンショット 2024-06-25 18.33.20 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/a55d805d-f451-6cd9-70c3-47a5120cb8d4.png)

認可URL、アクセストークンURLに関してはBacklog API公式HPの[「認証と認可」](https://developer.nulab.com/ja/docs/backlog/auth/)を参考にし、以下のように記載します。

```
- 認可URL
https://[スペースID].backlog.com/OAuth2AccessRequest.action

- アクセストークンURL
https://[スペースID].backlog.com/api/v2/oauth2/token
```
[スペースID]は、Backlog ヘルプセンター[「スペースIDとは？」](https://support-ja.backlog.com/hc/ja/articles/360036151593-%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9ID%E3%81%A8%E3%81%AF)を参考に、BacklogのURL上から確認することができます。

最後に接続認証を行って、疎通が確認できれば設定完了です。

# 転送設定の実装
TROCCO®にログインし、転送設定の新規作成に進みます。
**転送元** : HTTP・HTTPS
**転送先** : BigQuery
を選択します。

### 転送元設定
はじめに、OAuth2.0の「利用する」にチェックをつけ、「HTTP・HTTPS接続情報」には事前準備で作成したTROCCO上の接続情報を選択します。

![スクリーンショット 2024-06-25 16.11.42（2）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/aed55271-5593-4e82-a3a2-1c6221f75377.png)

カスタム変数機能についても設定を行います。
今回はBacklogAPIのパラメータ`projectId[]` を指定する際に使用します。

![スクリーンショット 2024-06-25 18.22.48 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/c5e5fa39-7c1d-983d-79af-0e03381220a2.png)

次に、Backlog APIの設定に移ります。

今回は、Backlog APIの[「課題一覧の取得」](https://developer.nulab.com/ja/docs/backlog/api/2/get-issue-list/)を使用します。
元となっているBacklog APIのURLは以下の通りです。

```
https://[スペースID].backlog.com/api/v2/issues?projectId[]=$projectid$
```

TROCCO®で設定する際は以下表の通りとなります。
表にない項目はデフォルトの値で問題ありません。

|設定項目名|設定内容|
|:-|:-|
|URL |`https://[スペースID].backlog.com/api/v2/issues?` |  
|HTTPメソッド |GET|
|文字エンコーディング  |UTF-8|
|ファイル入力形式|JSONPath|
|JSONPath|$.*|
|パラメータ`projectId[]` |`$projectid$`|
|HTTPヘッダ`Content-Type`|application/json　|

![スクリーンショット 2024-06-25 18.26.53 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/d24017b2-c53a-07ce-413b-ffa47adc85cc.png)

`projectId[]`は、Backlog画面上の「プロジェクト設定」ページのURLから確認ができます。

![スクリーンショット 2024-06-25 18.36.08 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/f5a1959d-814d-8fe2-2287-84dc7728ea35.png)

また、`projectId[]`を指定しない場合でも、「課題一覧」を取得することができます。
その場合は、Backlogアカウントで権限があるすべてのプロジェクトの「課題一覧」が取得されます。

### 転送先設定
転送先設定にて、Google BigQuery接続情報、データセット、テーブル、データセットのロケーション、転送モードを設定します。

![スクリーンショット 2024-06-27 14.18.38 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/595bcf89-b047-e44f-01c3-83d9a7717f20.png)

STEP2の画面に進むと、転送するデータのプレビューを確認することができます。

![スクリーンショット 2024-06-23 14.20.38（2）.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/03eccadb-9710-17cc-2bb7-8fbe7b6a505e.png)

取得できる項目はBacklogAPI公式HPの[「課題一覧の取得」](https://developer.nulab.com/ja/docs/backlog/api/2/get-issue-list/)からご確認ください。

テーブル定義やデータ型などは自動設定のままで問題ないので、確認・保存と進みます。

# 実行結果
転送実行後、BigQueryのプレビュー画面で、転送したデータが入っていることを確認できました。

![スクリーンショット 2024-06-23 14.13.11 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725527/dbc71148-4844-4a1d-00db-9dafccda3fbd.png)

# まとめ
今回の記事ではTROCCO®を用いて、Backlog APIのプロジェクトの「課題一覧」のデータを、BigQueryに転送する方法を紹介しました。

Backlog APIの「課題一覧」のデータは、プロジェクト管理をする上で有用な手段の一つとなってくれます。プロジェクトを管理する際には、ぜひご活用ください！