Power Automate で Qiita の記事に「いいね」をつける

Qiita には日々素晴らしい記事が投稿され、また投稿者は「いいね」や「コメント」をもらって、そのモチベーションとしていることでしょう。でも「いいね」を付け忘れてしまうこともあります。だって人間だもの。

ということ今回は Power Automate を使って「いいね」をつける方法を見て行きます。
※「いいね」は記事を読んでから、いいねと思ったらつけてください。

#　Qiita API の確認

先ず API の仕様から確認します。
[Qiita API 投稿のいいね](https://qiita.com/api/v2/docs#put-apiv2itemsitem_idlike)は以下 REST を実行します。

```
PUT /api/v2/items/:item_id/like
```

また[特定ユーザーの記事一覧](https://qiita.com/api/v2/docs#get-apiv2usersuser_iditems)は以下 REST を実行します。

```
GET /api/v2/users/:user_id/items
```

## アクセスキーの取得

API を実行するためにアクセスキーを取得します。

1. Qiita にログイン後、アカウントをクリックして「設定」をクリック。
<img width="505" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/7ed829e5-c6ce-ba9f-b0f7-8ebd86ab5062.png">

2\. アプリケーションを選択して、「新しくトークンを発行する」をクリック。
<img width="1122" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/92d4c38f-776c-aa27-5a6a-a014f9337ec9.png">

3\. read_qiita/write_qiita にチェックを入れて作成。表示されたトークンを保存しておく。
<img width="789" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/10ec4eb9-1907-68a1-af32-f4bcc33d4297.png">

## API 制限

以下のように制限があるため、実行時には留意してください。

>認証している状態ではユーザごとに1時間に1000回まで、認証していない状態ではIPアドレスごとに1時間に60回までリクエストを受け付けます。

# Power Automate の作成

では早速作成して行きましょう。

1\.　インスタントフローをクリック。
<img width="1101" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/72dac012-d9c9-4f7d-5b17-e22a0c330c4f.png">

2\. HTTP 要求の受信時をトリガーに作成。
<img width="916" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/6340eeb8-8bdd-bdfe-a5cb-aec020fdd163.png">

3\. JSON スキーマに以下を貼り付け。

- 入力としてアクセストークン、いいねをする対象、記事数を指定

```json
{
    "type": "object",
    "properties": {
        "access_token": {
            "type": "string"
        },
        "qiita_user": {
            "type": "string"
        },
        "count": {
            "type": "number"
        }
    }
}
```

4\. 新しいアクションとして HTTP を追加。
<img width="703" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/1bb246fc-0026-bb75-47e1-f7326286d6f9.png">

5\. 名前を任意のものに変更。Qiita API を参考に以下のように設定。
<img width="625" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/a9cc82f1-234a-2595-49e9-76886394ac73.png">

6\. JSON の解析を追加して、スキーマを追加。
<img width="617" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/c0321dff-3927-9f81-5aee-c63fcb5c5d24.png">

```json
{
    "type": "array",
    "items": {
        "type": "object",
        "properties": {
            "id": {
                "type": "string"
            }
        },
        "required": [
            "id"
        ]
    }
}
```

7\. 繰り返し処理を追加。JSON 解析の結果本文を受け取り、Qiita のいいねを実行。
<img width="668" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/71186684-2c66-eb0d-d4a7-9140a3313896.png">

8\. 最後に HTTP 応答を追加。
<img width="621" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/58831eab-ba56-06b2-35f9-e76b1d3634b4.png">

9\. すでに「いいね」をつけているなどの理由で繰り返し処理は失敗する可能性があるため、「応答」の「...」をクリックして「実行条件の構成」をクリック。
<img width="878" alt="スクリーンショット 2020-01-01 14.33.16.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/dd9cb5ff-1082-5c9d-f9a4-e3cc840edb89.png">

10\. 「に成功しました」と「に失敗しました」の両方をチェックして「完了」をクリック。
<img width="616" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/a32c79a8-b7a7-6530-03b9-56a32a5877d7.png">

11\. 名前をつけて保存。Power Automate の呼び出しアドレスを確認。
<img width="658" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/9ac3ca66-b564-073e-e839-87e6cce719f4.png">

# 実行

最後に作成した Power Automate を実行します。

POST メソッドで Power Automate を呼び出し、本文に必要な情報を JSON 形式で渡します。

<img width="873" alt="スクリーンショット 2020-01-01 14.43.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/57e443ce-9738-f2be-38db-dc9de23fc7e4.png">

実行がうまくできると、以下のように「いいね」をつけることができます。
※尚、全ての記事は既読で「いいね」と思っているので「いいね」しました。
<img width="1181" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/1a1075f2-b9ef-7cf3-2f9a-dcefb395b9c2.png">

# まとめ

今回は Power Automate で実装しましたが、IFTTT などでも基本同じだと思います。Qiita の使用許諾やポリシーをよく読んでいただき、清く正しい「いいね」をつけてください。