8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

kintoneAdvent Calendar 2021

Day 24

LINEからkintoneにレコードを登録する

Last updated at Posted at 2021-12-24

メリークリスマス🎅🎄🌟
kintone Advent Calendar 2021 24日目の記事です🥳

はじめに

ゲームのログインボーナスとかラジオ体操のカレンダーとかって
「自分これだけ頑張ったんだ!」って自分の頑張りが目に見えてわかるので私は好きです。

在宅勤務になってからおうちで筋トレを頑張ってて、
ラジオ体操方式でカレンダーにシール貼ってるのですが、紙ではなくデータとして残せるといいなと思って今回のカスタマイズを作ってみました!

概要図

データは簡単に登録したいので、今回は1番身近なLINEからkintoneへデータを登録します。
Power Autmateを使ってLINEとkintoneを連携をしたいと思います。
概要図.png

アプリの準備

アプリを作成しましょう。
以下のフィールドを追加してください。いたってシンプルですね!

| フィールド名 | フィールドの種類 | フィールドコード |
|------------|------------|------------|------------|
|日付 | 作成日時 | 日付 |
|メッセージ | 文字列(1行) |メッセージ |

LINE の設定

LINE Developers のサイトからログインします。
「LINEアカウントでログイン」してください。

プロバイダーの作成

ログインするとLINE Developersのコンソール画面が表示されます。
まず初めにプロバイダーを作成します。
LINE Developersコンソールでは、プロバイダーとは、サービス提供者のことを指します。
参照:LINE Developersコンソールの概要
プロバイダーの作成.png

チャネルの作成

チャネルを作成します。
今回はLINE Messaging APIを使います。
チャネルの作成.png

任意の値を入力し、「登録」ボタンをクリックします。
新規チャネル作成.png

Messaging API設定

Messaging APIの設定をします。
チャネル基本設定.png

QRコードをLINEで読み込むとアカウントが追加されます。
Messaging API設定.png

応答メッセージ設定

応答メッセージを「無効」に変更します。「編集」をクリックします。
応答メッセージ.png

応答メッセージを「オフ」にします。
応答設定.png

チャネルアクセストークン設定

チャネルアクセストークンを発行します。「発行」をクリックします。
チャネルアクセストークン.png

発行されたチャネルアクセストークンは後ほど使用するのでメモしておきましょう。
チャネルアクセストークン_2.png

Power Automate の設定

Power Automate のサイトからログインします。

フローの作成

「作成」をクリックします。
作成.png

フローにはいくつか種類がありますが、
今回は「LINEのメッセージを送る」という動作をきっかけに対してフローを実行するため、
手動でワークフロー始動のきっかけを与える「インスタントクラウドフロー」を選択します。
インスタントクラウドフロー.png

フロー名を任意で入力、「HTTP 要求の受信時」を選択し、「作成」ボタンをクリックします。
インスタントクラウドフローを構築する.png

HTTP要求の受信時

「HTTP要求の受信時」をクリックします。
「サンプルのペイロードを使用してスキーマを生成する」をクリックし、
以下のコードを貼り付けます。

{
    "type": "object",
    "properties": {
        "events": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "type": {
                        "type": "string"
                    },
                    "replyToken": {
                        "type": "string"
                    },
                    "source": {
                        "type": "object",
                        "properties": {
                            "userId": {
                                "type": "string"
                            },
                            "type": {
                                "type": "string"
                            }
                        }
                    },
                    "timestamp": {
                        "type": "integer"
                    },
                    "mode": {
                        "type": "string"
                    },
                    "message": {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string"
                            },
                            "id": {
                                "type": "string"
                            },
                            "text": {
                                "type": "string"
                            }
                        }
                    }
                },
                "required": [
                    "type",
                    "replyToken",
                    "source",
                    "timestamp",
                    "mode",
                    "message"
                ]
            }
        },
        "destination": {
            "type": "string"
        }
    }
}

HTTP 要求の受信時_2.png

変数を初期化する

「動的なコンテンツの追加」をクリックし、以下の式を入力します。

triggerBody()?['events']?[0]?['message']?['text']

動的なコンテンツの追加.png

以下の通り設定します。
変数を初期化する.png

アプリにレコードを登録

今回はレコード追加のアクションを選択します。
アプリにレコードを追加.png

アプリIDを入力し、メッセージには「response」を入力します。
これでLINEで入力したメッセージがkintoneのメッセージフィールドにセットされます。
アプリにレコードを追加_2.png

変数を初期化する2(ユーザーID)

次にLINEからメッセージを受信したユーザーのIDを取得します。
このユーザIDを使って、メッセージを送信したユーザに返信をすることができます。

「動的なコンテンツの追加」をクリックし、以下の式を入力します。

triggerBody()?['events']?[0]?['source']?['userId']

動的なコンテンツ_2.png

以下の通り設定します。
変数を初期化する2.png

HTTP

以下の通りに設定をします。

項目 キー
方法 - POST
URI - https://api.line.me/v2/bot/message/push
ヘッダ1 Content-Type application/json
ヘッダ2 Authorization 'Bearer ' と [LINE Developersでコピーしたチャネルアクセストークン]
本文 - 下記
{
  "to": "[上記で取得したメッセージ送信ユーザーのID]",
  "messages": [
    {
      "text": "kintoneにレコードを登録しました",
      "type": "text"
    }
  ]
}

HTTP.png

以上でフローの設定は終わりです。最後に忘れずに「保存」をクリックしましょう。
保存.png

Webhook の設定

最後にWebhookの設定をします。
「HTTP 要求の受信時」を開くと、「HTTP POSTのURL」が生成されています。
「HTTP POSTのURL」をコピーします。
HTTPPOSTのURL.png

LINE Messaging APIのWebhookにコピーした「HTTP POSTのURL」を登録します。
Webhook設定の「編集」をクリックします。

Webhook設定.png

先ほどコピーしたHTTP POSTのURLを貼り付け「更新」をクリックします。
WebhookURL.png

更新したあとにWebhookの利用を「オン」にするのも忘れずに!
Webhookの利用.png

これで設定は終わりです!

動作確認

では、LINEからメッセージを送ってみましょう!

動作確認.gif

メッセージが返ってきました!
kintoneのアプリにも....
ちゃんとレコードを追加されてました👏👏👏
動作確認_2.png

さいごに

ほんとうはレコードの数に応じてクリスマスツリーのオーナメントが増えるようにしたかったんです!!
ちょっと時間が足りませんでした🙇‍♀️🙇‍♀️🙇‍♀️

「連携」と聞くとハードル高く感じていましたが、PowerAutomate使えば本当に簡単にkintoneと連携できました。
まだまだいろんな使い方ができそうなので、今後もいろいろ触ってみようと思います!

参考サイト

8
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?