トップ » SORACOM IoT DIY レシピ » LINE WORKSに通知が届く、呼び出しシステム

SORACOM レシピ:LINE WORKSに通知が届く、呼び出しシステム

公開日:2021年8月
レシピ難易度:★★★★☆

このレシピでは SORACOM LTE-M Button と LINE WORKSを組み合わせて業務向けの呼出しボタンを作る手順を紹介します。

LINE を活用した個人向け呼出しボタンのレシピも公開していますのでユースケースに合せて選んでお試しください。

本レシピは業務向けの呼び出しボタンではお問い合わせをチームで対応するユースケースに対応しており、ボタンクリックを LINE WORKSのグループチャットに通知するまでの手順をご紹介しています。

たとえばタクシーの呼び出しボタンであったり、会議室等のオフィスでのヘルプボタンのような使い方を想定しています。

全体構成

使用する SORACOM サービス

本レシピを行うのに必要な時間、概算費用

  • 必要な時間: 約120分
  • 概算費用: 約6,600円

※ 概算費用: ハードウェアや SORACOM を始めとした各種サービスの概ねの費用 (送料などの付帯費用や無料枠適用は考慮しないものとしています)

このコンテンツの進め方

上から内容を読み進みながら作業を行なっていきます。また左サイドに追従する目次からページ内の移動が可能です。

本コンテンツは現状のままで提供され、株式会社ソラコムは、誤りがないことの保証を含め、明示であると黙示であるとを問わず、本コンテンツの記載内容につき、いかなる種類の表明も保証も行いません。

掲載情報の閲覧及び利用により、利用者自身、もしくは第三者が被った損害に対して、直接的、間接的を問わず、株式会社ソラコムは責任を負いかねます。

本コンテンツを実践する中で用意された機器、利用されたサービスについてのご質問は、それぞれの機器やサービスの提供元にお問い合わせをお願いします。機器やサービスの仕様は、本コンテンツ作成当時のものです。

株式会社ソラコムが提供する機器・サービスについてのご質問は、 https://soracom.jp/contact/ をご確認の上、適切な窓口へのお問い合わせをお願いします。機器・サービスご利用前の導入相談は https://soracom.jp/contact/contactsales/ に、機器・サービスご利用開始後のサポートは、SORACOMユーザーコンソール内のサポートサイトから「リクエストを送信」(要ログイン)にてお問い合わせください。

Copyright (c) 2021 SORACOM, INC.

本レシピを行うための前提知識

レシピ内にはターミナル(黒い画面)を使う作業が含まれます。ターミナルの利用方法は説明に含まれませんので事前の確認をおすすめします。

準備

本レシピを行うためには以下のものをご用意ください。

ハードウェア

品名数量価格備考
SORACOM LTE-M Button for Enterprise16,578円SORACOM LTE-M Button Plus でも代用可能です。
パソコン1インターネット接続が可能でサイトへの接続が自由であること。Google Chrome 等の最新ブラウザーが利用可能な事。

※ 金額はレシピ作成時となります。金額は税込み・送料別です。

ご購入について

その他必要なもの

必要なもの費用作成方法など
SORACOM アカウント無料※SORACOM アカウントの作成 (JP)
AWS アカウント無料※AWS アカウントの作成 (JP)
AWS Lambda Function や IAM 等のリソースを作成する権限が必要になります。あらかじめ AWS のアカウントを取得し IAM の権限を準備しておきましょう。
LINE WORKS アカウント無料※LINE WORKS アカウントの作成
Bot の作成には管理者権限が必要になりますのであらかじめ準備しておきましょう。

※ アカウント作成・維持の費用の料金です。

SORACOM LTE-M Button が届いたら

SORACOM LTE-M Button は、 SORACOM に登録することで様々なクラウドとの連携が可能となります。そのため、まず SORACOM LTE-M Button がお手元に届いたら、SORACOM へ登録をしましょう。
※ すでに登録済みの場合は次へお進みください。

登録の方法は発注済みの SIM を登録する(JP)をご覧ください。約 5 分で完了します。

登録が完了すると SORACOM LTE-M Button が “準備完了” として、SIM 管理の一覧に表示されますので、確認ください。

LINE WORKS の設定

本レシピでは LINE WORKS の Bot 機能を活用します。Bot 機能の設定には LINE WORKS の管理者権限が必要ですので、権限をお持ちでない場合は組織の担当者にご確認ください。

設定は以下の流れですすめます。

  1. Bot の設定
  2. LINE WORKS API の準備
  3. LINE WORKS グループの作成と Bot の招待

Bot の設定

LINE WORKS の Bot の設定は大きくわけて「1. Developer Console での Bot 作成」、「2. LINE WORKS 管理者画面でのBot 設定」の 2 つのステップに分れます。

1. Developer Console での Bot 作成

LINE WORKS の Developer Console にアクセスし「Bot」をクリックします。

Developer Console の Bot メニューで「登録」をクリックします。

Bot 登録画面で必須項目を記入しページ下部の「保存」をクリックします。トークルームへの招待は必ずチェックを入れてください。
必須事項を入力しないと「保存」をクリックできないのでご注意ください。

ダイアログが表示されたら「OK」をクリックします。

Bot が追加されていることを確認します。

2. LINE WORKS 管理者画面での Bot 設定

LINE WORKS の管理者画面にアクセスし、「Bot」をクリックします。

Bot 管理画面で「Bot 追加」をクリックします。

Bot 追加画面で先程追加した Bot の右側に表示されている「追加」をクリックします。

ダイアログが表示されたら「OK」をクリックします。

「前に戻る」ボタンをクリックします。

追加した Bot がリストに表示されていることを確認し「Bot No.」を控えます。控えた Bot No. は後の工程で利用します。Bot No. を控えたら Bot 名をクリックします。

ダイアログの「修正」をクリックします。

ダイアログ下部(スクロール)の使用権限と公開設定を設定します。この例では LINE WORKS の組織内のすべてのユーザが Bot にアクセスできるようにしています。設定を指定し「保存」をクリックします。

Information:Bot 設定についてはこちらのリンクを参照の上適切に設定ください。
https://guide.worksmobile.com/jp/admin/admin-guide/manage-service/bot/#i-3

LINE WORKS APIの準備

SORACOM LTE-M Button と LINE WORKS Bot を連携するために、以下の LINE WORKS API の認証キーを準備します。

  1. API ID
  2. サーバー API のコンシューマーキー
  3. Server (ID 登録タイプ) の ID と 認証キー

1. API ID の発行

Developer Console にアクセスします。

API ID の「発行」をクリックします。

ダイアログの「OK」をクリックします。

API ID が表示されます。API ID は後工程で利用しますのでセキュアなところに控えてください。

注意:API ID は秘密情報なので取扱にはご注意ください

2. サーバー API のコンシューマーキーの取得

API ID に続いてサーバー API のコンシューマーキーを取得します。

Developer Console 画面中程の Server API Consumer Key の「発行」をクリックします。

キーの権限を指定して「次へ」をクリックします。

注意:下記リンクを参照し権限を制限することをご検討ください。
https://developers.worksmobile.com/jp/document/1002005?lang=ja

キーの有効期限を指定し「保存」をクリックします。

ダイアログの「OK」をクリックします。

サーバー API のコンシューマーキーが表示されます。キーは後工程で利用しますのでセキュアなところに控えてください。

3. Server (ID登録タイプ)の登録と認証キーの取得

サーバー API のコンシューマーキーに続いてServer (ID 登録タイプ)を登録し、認証キーを取得します。

Developer Console 画面中程の Server List (ID 登録タイプ) の「追加」をクリックします。

Server の名称を入力し、「2.サーバーAPIのコンシューマーキーの取得」で作成したコンシューマーキーを選択して「保存」をクリックします。

ダイアログの「OK」をクリックします。

Server の ID の「コピー」をクリックして ID をコピーし控えておきます。併せて認証キーをダウンロードします。

注意:Server の ID と認証キーは秘密情報です。取扱にはご注意ください。

ダイアログの「OK」をクリックします。

LINE WORKS グループの作成と Bot の招待

LINE WORKS のトーク画面で「トークルーム作成」=>「グループ」をクリックします。

グループの設定を指定して「追加」をクリックします。

グループの設定を確認し「閉じる」をクリックします。

トークのメニューに追加されたグループをクリックしグループ名を確認します。

画面右側の三点リーダのメニュー内の「Bot 招待」をクリックします。

作成した Bot をチェックし「OK」をクリックします。

グループトークの画面に Bot 追加のメッセージが表示されたことを確認します。

テスト書き込みを行います。

LINE WORKS の管理者画面を開きます。

LINE WORKS の管理者画面の左側のメニューから「監査」=>「トーク」をクリックします。

「検索」をクリックします。

表示されたトークから先に行ったテスト書き込みの「トークルーム ID」を控えます。「トークルーム ID」は後の手順に ROOM ID として利用します。

※注意
文字列は秘密情報なので取扱に注意ください。

以上で LINE WORKS の設定が完了です。続いて AWS の設定をすすめていきましょう。

AWS の設定

開発環境の整備

本レシピでは以下のツールを利用します。既に導入済のツールの項目は読み飛ばしていただくか、お手元の環境にあわせてセットアップをすすめてください。

  1. docker
  2. AWS CLI
  3. AWS CDK
  4. yarn

docker のインストール

下記の手順を参照して docker をインストールします。
https://docs.docker.com/engine/install/

AWS CLI のインストール

下記の手順を参照して AWS CLI をインストールします。インストール後認証情報をセットアップしてください。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html

セットアップ後に動作確認のコマンド aws sts get-caller-identity を実行してレスポンスが返ってくれば設定が完了しています。エラーになる場合は aws コマンドを実行できるか、もしくは認証情報をご確認ください。

$ aws sts get-caller-identity
{
    "UserId": "AXXXXXXXXXXXXXXXXXXXX:botocore-session-XXXXXXXXXX", 
    "Account": "XXXXXXXXXXXX", 
    "Arn": "arn:aws:sts::XXXXXXXXXXXX:XXXX/XXXX
}

AWS CDK のインストール

下記の手順を参照して AWS CDK をインストールします。
https://docs.aws.amazon.com/ja_jp/cdk/latest/guide/cli.html

インストール後は cdk --version コマンドを実行できるかご確認ください。

$ cdk --version
1.105.0 (build 4813992)

yarn のインストール

下記の手順を参照して yarn をインストールします。
https://classic.yarnpkg.com/en/docs/install

インストール後は yarn --version コマンドを実行できるかご確認ください。

$ yarn --version
1.22.10

ソースコードのダウンロード

下記のリポジトリからソースコードの一式をダウンロードします。
https://github.com/soracom-labs/soracom-button-integrate-line-works-message-bot-example

Server 認証キーのアップロード

先の手順 でダウンロードした Server の認証キーを下記のコマンドで AWS にアップロードします。コマンド中の認証キーのファイルパスは適宜変更のうえコマンドを実行してください。

macOS 向け

$ SECRET=$(cat ~/Downloads/private_xxxxxxxxxxxxxx.key)
$ aws ssm put-parameter --name "line-works-server-token-secret" --type "SecureString" --value "$SECRET"
$ SERVER_TOKEN_SECRET_ARN=$(aws ssm get-parameter --name "line-works-server-token-secret" --query 'Parameter.ARN' --output text)

Windows 向け

PS /> $SECRET = [IO.File]::ReadAllText("~/Downloads/private_xxxxxxxxxxxxxx.key")
PS /> aws ssm put-parameter --name "line-works-server-token-secret" --type "SecureString" --value "$SECRET"
PS /> $SERVER_TOKEN_SECRET_ARN = aws ssm get-parameter --name "line-works-server-token-secret" --query 'Parameter.ARN' --output text

AWS リソースのデプロイ

これまでの設定で取得した情報を添えて AWS リソースを作成します。

  • BOT_NOこちらで作成した LINE WORKS の Bot No. を指定します
  • API_IDこちらで発行した LINE WORKS の API ID を指定します
  • CONSUMER_KEYこちらで取得した LINE WORKS のコンシューマーキーを指定します
  • SERVER_IDこちらで取得した LINE WORKS の Server ID を指定します
  • ROOM_IDこちらで取得した LINE WORKS の ROOM ID を指定します
  • EXTERNAL_ID:SORACOM Funk が AWS Lambda を呼び出す際の識別子を指定します。識別子は任意の文字列を指定可能です。ここで指定した識別子は後の手順で利用するので控えておきましょう。(詳細はこちらExternalId を参照ください)
  • SERVER_TOKEN_SECRET_ARNこちらでアップロードした認証キーの ARN(Amazon Resource Name, 例: arn:aws:ssm:{region}:{account_id}:parameter/{parameter_name})を指定します。

次に示すコマンドで AWS リソースを作成します。xxxx は上記パラメータに従って適宜置き換えた上で実行してみましょう。

$ API_ID='xxxxxx' CONSUMER_KEY='xxxxxx' BOT_NO='xxxxxx' \
SERVER_ID='xxxxxx' ROOM_ID='xxxxxx' EXTERNAL_ID='xxxxxx' \
SERVER_TOKEN_SECRET_ARN=$SERVER_TOKEN_SECRET_ARN \
yarn run cdk deploy --require-approval never

作成には数分要する場合があります。作成が完了すると以下のように表示されます。

 ✅  SoracomButtonIntegrateLineWorksMessageBotExampleStack

Outputs:
SoracomButtonIntegrateLineWorksMessageBotExampleStack.lambdafunctionarn = arn:aws:lambda:ap-northeast-1:000000000000:function:SoracomButtonIntegrateLineWorks-messagebotxxxxxxx-xxxxxxx
SoracomButtonIntegrateLineWorksMessageBotExampleStack.soracomfunkrole = arn:aws:iam::000000000000:role/message-bot-soracom-funk-role

Outputs:に表示されている SoracomButtonIntegrateLineWorksMessageBotExampleStack.lambdafunctionarnSoracomButtonIntegrateLineWorksMessageBotExampleStack.soracomfunkrole= 以降の2つの文字列は後の手順で利用するので控えておきましょう。

次は SORACOM の設定です。あともう少しです! 頑張って!

SORACOM の設定

SORACOM Funk の設定は Web コンソールから行います。

SIM グループの設定(SORACOM Funk の設定)

SORACOM の Web コンソールにログイン後画面左上の「Menu」をクリックします。

メニュー内の「SIM グループ」をクリックします。

SIM グループ画面で「追加」をクリックします。

任意の SIM グループ名を指定し「グループ作成」をクリックします。この例では「soracom-lte-m-button-line-bot」と名付けています。

作成したグループの設定画面内下部の「SORACOM Funk 設定」をクリックして設定画面を表示します。SORACOM Funk 設定画面内の「ON」をクリックし、認証情報右側の「+」をクリックします。

SORACOM Funk に AWS Lambdaを実行する際に使用する認証情報を設定します。下記の設定を指定した後に「登録」をクリックします。

  • 認証情報ID:任意の名前を付けます。この例では「message-bot-soracom-funk-role」としています。
  • 種別:「AWS IAM ロール認証情報」を指定します。
  • ロールARN: こちらで出力されたSoracomButtonIntegrateLineWorksMessageBotExampleStack.soracomfunkroleの値(arn:aws:iam::000000000000:role/message-bot-soracom-funk-role のような形式です)を指定します。
  • 外部 ID: こちらの手順の EXTERNAL_ID で指定した値と同じものを入力します。

SORACOM Funk の画面に戻ったら残りの設定をしていきます。下記の設定を指定した後に「保存」をクリックします。

  • サービス:AWS Lambda を選択します。
  • 関数の ARN:こちらで出力されたSoracomButtonIntegrateLineWorksMessageBotExampleStack.lambdafunctionarn の値(arn:aws:lambda:ap-northeast-1:000000000000:function:SoracomButtonIntegrateLineWorks-messagebotxxxxxxx-xxxxxxx のような形式です)を指定します。
  • 認証情報:1 つ前の手順で作成した認証情報を選択します。この例では「message-bot-soracom-funk-role」としています。
  • 送信データ形式:JSON を選択します。

注意:保存のクリックを忘れやすいのでご注意ください。

SIMグループの設定(SORACOM Airの設定)

前の手順と同じ設定画面内上部の「SORACOM Air for Cellular 設定」をクリックしてメニューを開きます。

メニュー内の「バイナリパーサー」をクリックして有効(緑色)にしたあと、「フォーマット」に半角文字で @button と入力して「保存」をクリックします。フォーマットはこの文からのコピー&ペーストがおすすめです。

注意:保存のクリックを忘れやすいのでご注意ください。

SIM グループの設定(SIM の設定)

SIM グループ設定で SORACOM Funk と SORACOM Air の設定を済ませたら SORACOM Web コンソールのトップ画面(SIM の一覧)に戻ります。

Tips: 画面左上の「SORACOM」のロゴをクリックすると簡単にトップ画面に戻れます。

SORACOM LTE-M Button の SIM だけにチェックを入れた状態で「操作」をクリックし、「所属グループ変更」をクリックします。

正しい SIM が選択されていること、新しい所属グループに先程作成したグループ(この例では soracom-lte-m-button-line-bot )が選択されていることを確認のうえ「グループ変更」をクリックします。

SIM 一覧画面で SIM のグループが変更されていることを確認します。

以上で SORACOM の設定が完了しました。早速動作確認してみましょう!

動作確認

SORACOM LTE-M Button をクリックしてみましょう。しばらくオレンジ色に点滅したあと・・・

緑色に点灯すれば成功です!

LINE WORKS のトーク画面にメッセージが表示されているはずです。

「Ack」をクリックして対応を開始しましょう。

対応してくれた同僚に感謝の気持を送るのを忘れずに!

ボタンが緑色に光らない場合

いくつか原因が考えられますので、下記を 1 つずつ確認していきましょう。

  • AWS リソース作成時にパラメータを渡し忘れているものはないか、間違った値を渡していないか
  • SORACOM Funk / SORACOM Air の設定は忘れていないか、間違った値を設定していないか
  • ひょっとするとボタンの電波環境が良くないかもしれないので、ボタンを押す場所を変えて変化がないか

上記を確認しても解決しない場合は切り分けの結果を添えて SORACOM サポート窓口までお問い合わせください。

まとめ

SORACOM LTE-M Button を使って業務向けのチャットツールでお問い合わせをチーム対応する例をご紹介しました。本レシピへのフィードバックや他のツールとの連携で気になる例がありましたらお気軽に SORACOM の Twitter アカウントかサポート窓口までご連絡ください。

SORACOM IoT DIY レシピ »

レシピの達成、おめでとうございます!

達成したことをTwitterで呟く

普段の生活やビジネスに役立つ #IoTレシピ 「LINE WORKSに通知が届く、呼び出しシステム」 を達成しました!
@SORACOM_PR https://soracom.jp/recipes_index/14133


ご質問などはこちらよりお問い合わせください。

pagetop