PowerAutomate: Backlog を使うことになったので、API の使い方を試しておく

# 背景
仕事で Backlog を利用する機会が出来た。

メンバー兼まとめサブって感じになったので、Automate を使った自動化のネタを調べておく

# Rest API リファレンス
https://developer.nulab.com/ja/docs/backlog/#

## API の使い方
1. [APIキー登録＆取得](https://m-ccra.backlog.com/EditApiSettings.action) 
    1. 個人設定で
    1. APIキーの発行の為、登録を押す
    1. 登録されたキーをコピー<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/3ae2469e-c792-2327-f338-55635c5eb1c9.png)

1. {project site URL}/{api}?apiKey={上で取得したAPIキー} <br> <code>https://xx.backlog.jp/api/v2/users/myself?apiKey=abcdefghijklmn </code>

Automate で使う場合は、こんな感じ。特につまるところは無し
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/7d29bd8f-3f8d-67e8-0c23-16d49d3c3e06.png)


### クエリパラメーターの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/d157cc9c-0fae-5632-1e38-84ce66a4f48a.png)

URL に {クエリパラメーター}={設定値} として & で繋げていくだけ

```url:space/activities の例
https://{tenantName}.backlog.com/api/v2/space/activities?count=2&apiKey=@{outputs('Compose_ApiKey')}
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/0fec1f9b-94be-79d7-0cb1-0713aa62015f.png)


## 利用制限

https://developer.nulab.com/ja/docs/backlog/rate-limit/#%E3%83%AC%E3%83%BC%E3%83%88%E5%88%B6%E9%99%90

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/e3f49ad4-1a6a-24b9-7c5c-c6a3cf7d006e.png)

種別ごとに、一分ごとの制限があって、[API](https://developer.nulab.com/ja/docs/backlog/api/2/get-rate-limit/#) で取得してくださいってことだそうな

ってことで、実際の取得結果

今回は、基本 読み込み(read) がメインだろうから、600 [times/minute] ってことで、全然余裕ですね。

## 取得結果
```json:return
{
  "rateLimit": {
    "read": {
      "limit": 600,
      "remaining": 599,
      "reset": 1653311008
    },
    "update": {
      "limit": 150,
      "remaining": 150,
      "reset": 1653310948
    },
    "search": {
      "limit": 150,
      "remaining": 150,
      "reset": 1653310948
    },
    "icon": {
      "limit": 60,
      "remaining": 60,
      "reset": 1653310948
    }
  }
}
```

## メンバーとして使える API は？
[ユーザーの権限](https://support-ja.backlog.com/hc/ja/articles/360035643434-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E6%A8%A9%E9%99%90) がこんな感じなので、それに応じたものでしょうね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/229055c6-8bcd-4ce3-1c29-a450187add39.png)

## エラー発生時
以下見れば今のところすぐ対処可能

https://developer.nulab.com/ja/docs/backlog/error-response/#6-noresourceerror

# 使ってみた API
とりあえず、自動通知用情報は簡単に取得出来たけど・・会社環境への通知をどう解決したものか・・

https://developer.nulab.com/ja/docs/backlog/api/2/get-space/

https://developer.nulab.com/ja/docs/backlog/api/2/get-recent-updates/#

https://developer.nulab.com/ja/docs/backlog/api/2/get-project-list/#

https://developer.nulab.com/ja/docs/backlog/api/2/get-wiki-page-list/#

## wiki 更新目的（まずは追加）
ProjectID as number を取得

https://developer.nulab.com/ja/docs/backlog/api/2/get-project/#

で、実際の追加は、以下パラメーターを設定すればいけるとのこと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/ba9626f4-3eb0-4baa-14ec-79e823073d31.png)

https://developer.nulab.com/ja/docs/backlog/api/2/add-wiki-page/#

### 追加の際の注意点
- 通常は更新の利用を
- content は [encodeUriComponent](https://docs.microsoft.com/ja-jp/azure/logic-apps/workflow-definition-language-functions-reference#encodeUriComponent) で Encode <br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/24d6c149-5a11-74a0-2dbb-eab04ac388e9.png)

- mailNotify=false でメール通知の是非（多分省略で非通知だろうけれど、飛ばすと嫌なので未確認）

# あとがき
追加はOKなので、あとはやりたいことが見つかったら、初期追加して、WikiId 利用して更新かな