BizteX ConnectでLINE WORKSのトークをkintoneのレコードコメントとしてノーコードで連携する

この記事はLINE WORKS Advent Calendar 2021 の11日目の記事です。

https://qiita.com/advent-calendar/2021/lineworks

10日目は @tawa3939 さんの記事でした。

https://qiita.com/tawa3939/items/ab0573981e134266b6f8

BizteXでプロダクトマネージャー(PM)をしている大坪です。
Web API Advent Calendar 2021に続いて今回もiPaaS「BizteX Connect」を用いて、LINE WORKS と kintoneを 連携する記事を書いてみます。

※BizteX Connect については前回の記事をご覧ください。

https://qiita.com/otsubo666/items/8c3a32d888e3008ee3ad#biztex-connect-%E3%81%A8%E3%81%AF

## LINE WORKSのトークログをkintoneのレコードコメントに連携する
今回は[cybouzのdevelopper network のkintone Tips](https://developer.cybozu.io/hc/ja/articles/360000783023-LINE-WORKS%E3%81%AE%E3%83%88%E3%83%BC%E3%82%AF%E3%82%92kintone%E3%81%AB%E4%BF%9D%E5%AD%98%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)や、[CDataのブログ記事](https://www.cdatablog.jp/entry/lineworks-arcesb-kintone-webhook)　にあるような LINE WORKSのトークログをkintoneに連携する処理を作成してみます。

少しだけ変化をつけて、連携先をkintoneのレコードのコメントとして自動化のシナリオを作成してみます。

想定としてkintone上で取引先を管理するアプリがあり、LINE WORKS上で取引先とやりとりをしているトークルームのトーク内容を、対応するレコードのコメントに連携したい。といった要望を叶える例になります。

![やりたいこと.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/3843bef9-0316-5fb8-061a-7de22e30e398.png)

### 完成イメージ

![完成イメージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/e36bec7b-ff73-2ca8-7237-55df4223bf78.png)

今回はConnectのWebhookコネクタを用いて、
トークBotからのCallbackを受け取り、kintoneにレコードのコメントとして投稿してみます。

### シナリオを作成する
#### 1.Webhookコネクタを作成する
ConnectにはWebhookコネクタという機能があります。この機能を用いると外部システムからの通知を受け取るためのURLを発行することができます。最初にこのWebhook　URLを発行していきます。

[前回の記事](https://qiita.com/otsubo666/items/8c3a32d888e3008ee3ad)と同様に新規シナリオとして作成していきます。
![ 新規シナリオ作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/c8c09593-1300-e860-8cf1-4a500274f8fb.png)

##### 1.アプリ選択
HTTPアプリを選択します

![アプリ選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/50939735-7f0b-dde0-f6fa-73009efaed63.png)

##### 2.イベント選択
Webhookを選択します
![イベント選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/626b266e-790d-10f8-fc03-b843338deb93.png)

##### 3.Webhookコネクタを作成（URLの発行）
「新しいコネクタを作成する」より新規Webhookコネクタを作成します。
名前を入力して登録するとURLが発行されます。
![新規webhook作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/36f55b9d-25f1-0566-6f0c-d3258df914fa.png)
![webhook作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/20ea0651-0ed1-328d-3d9d-a21e5cb548c1.png)
![webhook発行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/cbc8eed5-8ea0-a572-a37c-d7024194280e.png)

#### 2. LINE WORKS でトークBotの登録を行う
URLが発行されたので、ここからLINE WORKS側でトークBotを登録し、URLを設定していきます。
##### 1. LINE WORKS Developper ConsoleからトークBotを登録する
https://developers.worksmobile.com/jp/?lang=ja

LINE　WORKS　Developer Consoleにログインし、メニューから Bot を選択→登録から新規botの登録を行います。

![1_bot登録開始.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/cb609345-4ca2-d64e-d499-1d5845208a68.png)
![2_bot新規登録.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/6951087c-f93c-43fc-64c4-b13a278f6260.png)

トークBotに必要な情報を入力し登録します。
設定で重要な箇所はCallback URL の部分です。

- Callback URL をONにし、先程発行したWebhook コネクタのURLを設定
- 送信可能なメッセージタイプで「テキスト」にチェックを入れる
![3_bot新規登録01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/0d64a305-c093-15d1-1930-cad8686bfec3.png)

##### 2. LINE WORKS の管理者画面からトークBotを追加し、公開可能に設定する
トークBotの登録が完了したら次はLINE WORKS上の管理者画面に移動しトークBotを利用できる状態にします。

LINE WORKS にログイン後、管理者画面に移動し、メニューから「サービス」>「Bot」を選択します
![4_LINEWORKS_admin移動.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/7cc1fde2-c294-8d81-f309-1944a90c1449.png)
![5_LINEWORKS_admin_bot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/da3f7db9-dfd6-8d70-aa7d-1009826a30f2.png)

トークBotの一覧画面から「Bot追加」を選択し、先程登録したBotを追加します。
![6_bot追加01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/1f97a02f-fd10-8033-1b91-92dec1af2663.png)
![7_bot追加2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/483a138f-8f22-fce9-1474-03aba13ef6e9.png)

追加されるとトークBotの一覧画面にBotが追加されています。
このBotを選択し、公開設定を変更します。この設定により、同じ組織内でトークBotの利用権限があるユーザーがBotを利用できるようになります。

![8_bot追加04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/b06374a1-9965-c250-fc9c-e74cb448d913.png)
![9_bot追加5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/5cf7e772-23a5-4429-40b0-d858b7478bd8.png)

##### 3. トークBotをトークルームに招待する
LINE WORKSのトーク画面に戻りトークルームにBotを招待してみます。
トークのメニューのBot招待から招待できます。
![10_botトーク利用1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/5b92c73d-e8f9-dd31-8dcf-37d83353ae5e.png)
![11_botトーク利用2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/584cdead-fb6b-6602-6985-b0a645dfcd75.png)

#### 3.実際にトークBotからトークを受け取ってみる
Connectの画面に戻り、テスト実行でトークBotからCallbackを受け取ってみます。
最初に編集していたステップを「出力確認」フェーズまですすめ、「サンプル取得」→「Webhook待機」を選択します。
![1_テスト実行01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/c336cc0c-7f74-2f3f-8bf5-fe9858461f32.png)
![2_テスト実行02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/2e8467a1-1ac3-6281-adaa-a5548714ba3e.png)

待機状態になると下記のようなポップアップが表示されます。
![3_テスト実行03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/1c4c7812-b9da-b404-f698-47c5d24bb2f6.png)

この状態で再びLINE WORKSの画面に移動し、トークBotを追加したトークルームで発言したあと、Connectの画面に戻ると出力結果に受け取ったCallbackの内容が記録されています。
![4_テスト実行04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/f6205f32-c2b0-5130-cd39-859810607ec2.png)

内容には発言したアカウントのIDや発言した内容が記録されています。
![5_テスト実行05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/62b56d5d-ba31-c883-7c3e-8521dbdabb46.png)

#### 4. kintoneとの連携設定を行う
##### 1. kintoneアプリでAPIトークンを生成する
次にkintoneとの連携を設定していきます。Connectはkintoneとアプリ単位で発行されるAPIトークンを用いて連携することができます。

対象のアプリの設定からAPIトークンを生成します。
レコードのコメントに必要な権限はアプリとレコードの閲覧権限になります。
![アプリ設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/18f11b9b-9301-3cea-64ab-b7377098fc63.png)
![APIトークン発行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/194e4d53-5279-2cfa-abe8-bbcce155c6bc.png)

APIトークンをメモした後、保存しアプリの変更を反映させます。

##### 2. Connectの設定を行う
Connect上で２つ目のステップとしてkintoneの連携設定を行っていきます。
アプリでkintone, アクションでレコードコメントの投稿を選択します
![1_アプリ選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/5f077006-a9ce-7adc-8bf5-3ddc67bfec4f.png)
![2_アクション選択.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/538f4892-8dc9-6c41-642e-f73089b09229.png)

次に認証情報を設定していきます。
![3_認証情報作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/497ad237-3847-59cd-dd07-1920e37a4319.png)


新規作成する場合、下記の情報を設定していきます。

- トークン：APIトークン
- ドメイン:kintoneのURLが `https:xxxxx.cybozu.com` だった場合 `cybozu.com` に当たる部分
- サブドメイン：kintoneのURLが `https:xxxxx.cybozu.com` だった場合 `xxxxx` に当たる部分
- アプリID: 対象のアプリのID
- ベーシック認証を設定している場合はID・パスワード

![4_認証情報設定01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/98f3e6a9-849d-fd98-1faf-be5c1f413bf2.png)
![5_認証情報設定02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/f35377dc-cded-795b-a26c-1d5eeba9d8f6.png)

基本設定では、コメントを投稿するレコードIDとコメント内容を設定します。
今回はレコードID=2のレコードのコメントに、LINE WORKS上で発言したアカウントIDと発言内容を投稿してみます。
![7_コメント内容設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/e6396f2b-f667-f93c-5821-09c33aec1f60.png)

出力確認でテスト実行を行うと、指定したレコードに設定した内容でコメントが投稿されます。
※ [kintoneのAPIの仕様](https://developer.cybozu.io/hc/ja/articles/209758903)により、投稿ユーザーは「Administrator」になります

![8_テスト実行.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/6c20ca96-485d-e10c-8ed2-eaa567653cdf.png)
![9_結果確認.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/cf2eb927-4f16-925e-058f-8ac7ec117d70.png)

#### 5.シナリオを有効化する
作成したシナリオを保存して有効化すると、以降自動でLINE WORKSのトーク内容がレコードコメントとして自動で投稿されます。
![1_有効化.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/2a7bb599-9e84-bd8b-5f75-08f917352a8f.png)
![2_トーク投稿.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/332887f2-a058-2590-e852-a1ce236bcf3d.png)
![3_追加されたコメント.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/a59d2bbe-2f9a-b6c4-7d26-d492b0ce7811.png)

### 終わりに
簡単な例ですが、BizteX Connectを利用してLINE WORKSのトークをkintoneのレコードコメントとして連携するシナリオ例のご紹介でした！

紹介した例以外でも他の機能を組み合わせることで下記のようなことができます！

- 同じトークBotでトークルーム毎に連携する先のkintoneのレコードを動的に変更する
- 発言された日時もコメントに連携する

また、ConnectにはトークBot経由でLINE WORKS のトークにメッセージやファイルを投稿する機能や、メンバー情報を更新する機能もあります。
![スクリーンショット 2021-12-11 2.02.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/163633/108fe0c9-011d-df61-18a8-1d9c0f97ed62.png)

[最近発表された新方式のAPI](https://line.worksmobile.com/jp/pr/20211207/)にも対応しできることを増やしていく予定ですので、LINE WORKSと他サービスとの連携でお悩みの方は是非ご相談ください。
※無料トライアルも可能です。

https://service.biztex.co.jp/connect/