こんにちは。CData Software Japanの色川です。
今週は大阪でCybozu Circus ですね、楽しみです。先日幕張での Cybozu Days では、CData ブースにも多くの方々にお立ち寄り頂き、kintone とのデータ連携を中心にお話をさせて頂きました。
今回はブースでご相談頂いた中から「ArcESB を使って LINE WORKS のトークログを kintone にノーコードで連携する方法」をご紹介します。
LINE WORKS とは?
ワークスモバイルジャパン株式会社が提供する企業向けのクラウド型ビジネスチャットツールです。
普段使い慣れた LINE を踏襲したメッセージのやりとりだけでなく、個人や組織の予定管理、ファイル共有、メール、アドレス帳、アンケートなど多くの機能を利用する事ができます。
ArcESB とは?
ファイル転送(MFT)とSaaSデータ連携をノーコードで実現できるデータ連携ツールです。ファイル・データベース・SaaS API、オンプレミスやクラウドにある様々なデータをノーコードでつなぐ事ができます。
ArcESB は世界中で10,000社を超える導入実績を持ち、多様な業界のデータ連携を支えている製品です。
この記事のシナリオ
この記事では「LINE WORKS からトークログを取得して kintone へ連携する」シナリオを実現します。
必要なもの
この記事のシナリオでは以下の製品を利用します。すべて30日間のトライアルが提供されています。ぜひお手元で試してみてください。
事前準備
製品のインストール
まず利用する製品をそれぞれインストールします。以下のページから ArcESB の本体を入手できます。必要に応じて、Windows、Java/Linux、Cloud Hostedのバージョンから選択してください。なお、本記事では Windows 環境で進めています。
ArcESB のインストールはダイアログに従って進めてください。難しいところはありません。
また kintone への接続で利用する CData kintone ADO.NET Provider もダウンロードしてインストールします。こちらも難しいところはありません。
LINE WORKS の事前準備
LINE WORKS ではドメイン内のすべてのユーザーデータにアクセスするサーバー API と、本人のデータへのみアクセスするサービス API が提供されています。
今回の記事で連携するトークログは監査 API で取得できます。監査 API を利用するためにはライトプラン以上の契約が必要です。
では、サーバー APIを利用するために、LINE WORKS の Develiopers Console にログインして、必要な情報を生成して取得します。
生成が必要となる情報は以下の3種類です。
まず、API IDの「発行」をクリックし、API IDを生成します。API ID は控えておいてください。
次に Server API Consumer Keyを発行します。以下の「発行」をクリックして、Server API Consumer Keyとして活用するAPI権限範囲を選択します。今回は「監査」の「照会」を選択しました。
次に Token の有効期間を設定し保存します。保存後 Consumer Key が生成されるので控えておいてください。
次に Token を取得するために Server List(固定IPタイプ) に、接続元となるIPアドレスを登録します。Server List(固定IPタイプ)の「追加」をクリックします。
任意のサーバー名を入力して、先程生成した Consumer Key を選択して、接続元となるパブリックIPアドレスを入力して、Token を生成します。生成された Token は控えておいてください。
以上で事前準備は完了です。
なお、監査 API の実行には「Domain ID」と「Tenant ID」も必要になります。Developer Console で表示されているそれぞれの ID を控えておいてください。
kintone の事前準備
今回は、kintone にトークログを保存する以下のようなアプリを作成しました。
フィールド名(項目名) | フィールドタイプ |
---|---|
日時 | ドロップダウン |
送信者 | 文字列(1行) |
受信者 | 文字列(1行) |
トークルームID | 数値 |
トーク | 文字列(複数行) |
連携フローの作成
それでは、実際に ArcESB を使って連携フローを作成していきます。
ArcESB にログイン
ArcESB はスタートメニューの「Start ArcESB 2021J Server」で起動できます。
ArcESB を最初に起動したら「ユーザーを作成」してください。
ユーザーを作成したら、作成したユーザーアカウントでログインして、30日の評価版ライセンスをアクティベートしましょう。これで30日間 ArcESB を試して頂けます。
早速、今回のシナリオを実現する連携処理を作成していきます。ArcESBでは「フロー」からデータ連携処理を作成します。
REST コネクタ の配置と構成
フローデザイナー画面に移動したら、それぞれのデータ処理コネクタを配置していきます。
まずは、LINE WORKS API への接続を構成します。LINE WORKS API へは ArcESB の REST コネクタを利用して接続します。左側のコネクタ一覧から「コア」の「REST」を選択し、フローキャンパスに配置します。
任意のコネクタId(ここでは REST_LINEWORKS としました)を入力し「+コネクタを作成」をクリックします。
コネクタが作成されると、右側に設定画面が表示されます。今回利用する監査 API は以下の仕様で提供されています。
監査 API の概要 - 監査 - LINE WORKS Developers Document
https://audit.worksmobile.com/r/{API ID}/audit/v2/{feature}/{service}/logs.csv
今回 {feature} には「log」、{service} には「message」を指定します。また指定が必須となるパラメータは、今回以下のように設定しました。
パラメーター | 値 |
---|---|
apiId | downCsvLog |
serviceId | audit |
startDate | {取得範囲の開始日(yyyyMMdd)} |
endDate | {取得範囲の終了日(yyyyMMdd)} |
tenantId | {テナントID} |
domainId | {ドメインID} |
rangeName | domain |
それぞれを組み合わせて URL 欄には以下のように設定しました。({} 内はそれぞれの環境や条件で読み替えてください)
https://audit.worksmobile.com/r/{API ID}/audit/v2/log/message/logs.csv?rangeName=domain&startDate={取得範囲の開始日(yyyyMMdd)}&endDate={取得範囲の開始日(yyyyMMdd)}&tenantId={テナントID}&domainId={ドメインID}&serviceId=audit&apiId=downCsvLog
また LINE WORKS の API を呼び出す場合は、必ずヘッダーに LINE WORKS Access Token と Consumer Key を記載する必要があります。
まず、認証タイプに「Bearer Token」を選択して、トークンに先ほど生成した Token を設定してください。
次に、ヘッダーの名前に「consumerKey」、値に先ほど生成した Consumer Key を設定してください。
これで LINE WORKS への API リクエストの設定が完了です。設定を保存しましょう。
REST コネクタのアウトプットタブにある「受信」から、手動でコネクタを実行する事が出来ますので試してみましょう。
正しく設定できていれば、以下のような列で構成された CSV ファイルがダウンロードされます。
CData(kintone)コネクタの配置と構成
続いて kintone の接続を構成していきます。左側のコネクタ一覧から「コア」の「CData」を選択し、フローキャンパスに配置します。コネクタIdは CData_kintone としました。
データソースは CData kintone を選択し、kintone 環境の接続情報を入力します。接続テストが無事に完了したら設定を保存しましょう。
次に登録したいアプリ(テーブル)を選択するために、マッピングを設定しましょう。kintone へはデータを"入力"するので、マッピングの"インプット"を選択し、インプットマッピングから「+」ボタンをクリックします。
対象のアプリ(テーブル)一覧がリストアップされるので、あらかじめ用意した「トーク履歴」を選択します。
次の画面で登録する項目と処理方法(UPSERTするかどうか)、UPSERTする場合のKey項目を指定します。今回はトーク履歴アプリへシンプルにINSERTするように指定しています。
以上で、LINE WORKS からの出力(アウトプット)と kintone への入力(インプット)のコネクター構成は完了です。
マッピングコネクタの配置と構成
続いて、LINE WORKS の API で取得できるトークログの情報と kintone のトーク履歴アプリの項目を紐付けるために必要な マッピングコネクタを配置します。
左側のコネクタ一覧から「コア」の「CSV Map」を選択し、フローキャンパスに配置します。コネクタIdは CSVMap_LINEWORKS_kintone としました。
CSVMapコネクタを配置後、まずインプットとアウトプットをフローで紐付けます。以下のようにドラッグアンドドロップで、事前に作成した RESTコネクタ / CData(kintone)コネクタと紐付けて、画面右下にある保存ボタンで設定を保存してください。これで CSVMap にどのような形式で入力され、どのような形式で出力するかの情報が伝わります。
次に、CSVMapの設定画面を開きます。フローの紐づけが正常に構成されていれば、kintone コネクタのマッピング構成は定義されていますので、デスティネーションファイルが以下の様に入力されているはずです。
ソース側となる LINE WORKS API から取得するCSVファイルの構造は、まだ ArcESB では認識できていませんので、ここでサンプルファイルをアップロードして設定します。今回は REST コネクタの動作確認で取得した CSV ファイルをアップロードして設定しました。
画面下で各項目のマッピングを行う領域が表示されているので、ここで項目を選択して、LINE WORKS API から取得するCSVファイルと kintone のトーク履歴アプリで更新する項目を紐付けていきます。
紐付け後、保存をすれば、設定完了です。
これで「LINE WORKS からトークログを取得して kintone へ連携する」ために必要な連携フローが完成しました。
連携フローの実行
自動実行の設定
設定したフローを自動的なタイマー起動するには、データ連携の実行間隔を設定します。実行間隔の設定は、データ取得元である REST コネクタの設定画面にある「オートメーション」タブで設定します。
受信のチェックボックスにチェックを入れて、受信間隔と時間を指定しましょう。以下の画面では、毎日に12時に起動する設定にしています。
実行
それでは構成したフローを実行してみます。
タイマー起動ではない、手動での実行は「アウトプット」の「受信」ボタンをクリックすることで可能です。
「受信」ボタンをクリックすると、LINE WORKS APIからデータが取得され、以下のようにArcESBにロードされたことがわかります。
最終的な処理結果は CData(kintone)コネクタのインプットタブから確認できます。ここで処理結果がSuccessになっていれば、kintone側に正常に処理が行われたことになります。
実際に kintone 上のトーク履歴アプリを見てみると、LINE WORKS から取得したトークログが登録されていることが確認できます。
※. 取得する日付の範囲を動的に指定する
ここまでで作成したシナリオでは開始日と終了日を固定的に指定していましたが、取得する範囲はフローを実行するタイミングに併せて動的に指定したいケースが多いかと思います。
LINE WORKS の監査 API では、照会するデータの日付範囲を指定する必要があります。範囲は最長で31日まで設定可能です。
この日付範囲を実行タイミングに併せて自動的に算出・設定したい時は、startDate、endDateパラメータに対して、ArcESB のスクリプト処理を利用する事で実現する事ができます。
まず Advenced タブにある「URL 内のArcScript:」で「URL 内のArcScript を許可」してください。これで設定の URL で ArcScriptを使った動的指定が出来るようになります。
例えば、以下では、フローが実行される日から直近2週間のトークログをダウンロードしたいケースを想定して、開始日に「現在日付 - 14日」、終了日に「現在日付」を指定するようにしています。
https://audit.worksmobile.com/r/jp1bhZrgGXaBb/audit/v2/log/message/logs.csv?rangeName=domain&startDate=[_ | now() | dateadd('day', -14) | todate('yyyyMMdd', 'yyyy-MM-dd')]&endDate=[_ | now('yyyyMMdd')]&tenantId=400006361&domainId=400006361&serviceId=audit&apiId=downCsvLog
おわりに
このように、ArcESB と CData kintone ADO.NET Providerを活用することで、LINE WORKS のトークログを kintone に連携するフローを簡単に構築することができました。
ArcESB はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで250を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。
皆さんのつなぎたいシナリオでぜひ ArcESB を試してみてください。