LINEWORKS のトーク Bot は accountId
か roomId
を指定してトークするのですが、roomId
を取得する API って、これを書いている今現在ないんですよ。
だから、招待したら roomId
を教えてくれる Bot、作っちゃいました!ヾ(´∀`)ノ
良かったら使ってくださいな。(*‘∀‘)
roomId check bot の登録手順
手順は以下の通りー
- GoogleAppsScript で新規スクリプトを作成してライブラリを登録する
- コードをコピペする
- API ID とか必要な情報を集めてコードに記載する
- GoogleAppsScript から roomId check bot を登録する
- GoogleAppsScript で作成したスクリプトを公開する
ここまで終われば、あとは roomId
の知りたいトークルームに bot を招待するだけ!
では、いってみましょー!(^O^)
GoogleAppsScript で新規スクリプトを作成してライブラリを登録する
既に登録してあるよ!わかってるよ!って方は飛ばしちゃってくださいな!( ゚Д゚)
https://script.google.com/ にアクセスして新規スクリプトを作成します。
スクリプト名はなんでも良いのですが、今回は「roomId check bot」としましょう。
スクリプトができたら、以下の手順で私の作ったライブラリを登録してください。
- 「リソース」-「ライブラリ」をクリック
- 「ライブラリを追加」の欄に
1aLcCr3CWqfenPMyM0_FWIDUgRcTxsit9bO6BTx61NCXrCtkY2zbHBlod
を入力して追加ボタンをクリック - 「LINEWORKS」ライブラリが追加されるので、一番新しいバージョンを選んで保存ボタンをクリック
これで登録完了です。
ちまちま改修しているので、ときどき最新バージョンか確認してくださいねー。
コードをコピペする
以下、GoogleAppsScript に丸々っとコピペしちゃってください。
function doPost(e) {
if (e == null || e.postData == null || e.postData.contents == null) return;
const requestJSON = e.postData.contents;
const requestObj = JSON.parse(requestJSON);
if(requestObj.type == "join") {
const roomId = requestObj.source.roomId;
const msgText = "このルームの ID は " + roomId + " です。\nご利用ありがとうございました。";
LINEWORKS.sendMsgRoom(getObj, roomId, msgText);
LINEWORKS.leaveTalkroom(getObj, roomId);
}
}
function regRoomIdCheckBot() {
LINEWORKS.regRoomIdCheckBot(getObj(), "accountId", domainId, "callbackURL");
}
function getObj() {
return {
"apiId" : "apiId",
"consumerKey" : "consumerKey",
"serverId" : "serverId",
"privateKey" : "-----BEGIN PRIVATE KEY-----\nprivateKey\n-----END PRIVATE KEY-----",
"botNo" : null
}
}
そしたら、apiId とかの必要情報を入力していきます。
サクサクいきますよー(*´Д`)
API ID とか必要な情報を集めてコードに記載する
12行目からの function regRoomIdCheckBot()
内の "accountId"
domainId
"callbackURL"
の 3つを入力してください。
accountId
は自分の LINEWORKS アカウントです。
domainId
は DeveloperConsole で確認しましょう。(Number 型なのでダブルクォートは不要です)
"callbackURL"
は作成したスクリプトを公開すると取得できます。
まだ未完成ですが、あとで内容を更新しても URL は変更されないので先に取得しちゃいます。
スクリプトの公開方法
- 「公開」-「ウェブアプリケーションとして導入」をクリック
- 出てきた画面で以下の設定をします。
- プロジェクトバージョン : NEW
- 次のユーザーとしてアプリケーションを実行 : 自分
- アプリケーションにアクセスできるユーザー : 全員(匿名ユーザーを含む)
- 更新をクリック
このとき、Google からセキュリティの警告が出て許可を求めることがあります。
気にしない人はそのまま許可出しちゃってください。
気になる人は調べてから許可してください。
公開が完了すると「現在のウェブ アプリケーションの URL」が取得できます。
これが "callbackURL"
になるので、コードに記載します。
次に、function getObj()
内を埋めていきます。
こちらは全部 DeveloperConsole で確認できるのでドンドン埋めていきます。
認証キー(privateKey
)だけは注意が必要で、"-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9...\n-----END PRIVATE KEY-----"
となるように \n
と \n
の間に認証キーを入れて一行で表記します。
botNo
はこの時点ではわからないので null
を入れておきます。
GoogleAppsScript から roomId check bot を登録する
必要事項が入力出来たら、googleappsscript 画面の上部にある「関数を選択」から regRoomIdCheckBot
を選んで実行しましょう!
成功すれば、自分の LINEWORKS アカウントに登録成功アナウンスと botNo
が送られてきます。
この botNo
を先ほどの null
を消して記入します。(Number 型なのでダブルクォートは不要です)
注)エラーが出ると中途半端に bot が登録されたりして大変面倒です。
ID 等単純な入力ミスをすると泣きを見ますよ!見ましたよ!( ノД`)シクシク…
あと、登録は一回だけで良いので、成功したら function regRoomIdCheckBot()
は削除しちゃっても構いません。(むしろ、誤爆防止に消しちゃった方がいいかも…?)
GoogleAppsScript で作成したスクリプトを公開する
さっきもやりましたね(*´Д`)
今度こそ完成版を公開してやりましょう!
アイ・イェー!(=゚ω゚)ノ
完成だぜ!
さぁ!トークルームで bot を招待して、自分の roomId
を調べましょう!ヾ(´∀`)ノ
やったね!(^O^)
おわりに
ここまでお付き合いいただきありがとうございました。
スクショとか入れたらもっと丁寧になると思うのですが、ついつい文章だけになってしまう。。。
頑張って時間作って追加していきたいと思いますまる。
次は何を書こうかな~。
ではまた!(^^)/