はじめに
レビュー依頼ボットを自作しました。Hangout Chatに打つ際、特定のキーワード("レビュー")が含まれていたら、配列の中身を順番に吐き出します。例えば、"No.〇〇のレビューをお願いします"と入力したら、レビュアーを順番に表示するような具合です。
問題
この自作botが、ダイレクトメッセージ(以下、DM)では機能しますが、チャットルーム内で特定のキーワードを入力してもbotから何も反応がありません。チャットルーム内でbotを機能させるには、何か設定が必要なのでしょうか。
前提
- DMとチャットルームには、同じbotを追加し、同じメッセージを入力しています。
- Google Developer Console画面の
「APIとサービス」>「Hangout Chat API」>「設定」>「機能」>
**「ボットはルーム内で機能します」**には、チェックが入っています。
ソースコード
js
1// コード.js 2 3/* レビュー依頼のbot 4 * 0. 事前準備)レビュー担当者を決める 5 * 1. トリガー)チャットの投稿に特定の文字列が含まれていたら発動 例:"レビュー" 6 * 2. 処理1)レビュアーを指名する。「review_candidate」から順番に表示 7 * 3. 処理2)戻り値(レビュアー)をonMessage関数に渡す 8*/ 9 10function randomReview(){ 11 var review_candidate = ["@tanaka","@suzuki","@saitou"]; // レビュー担当者 12 13 var props = PropertiesService.getScriptProperties(); // ScriptPropertiesオブジェクトの取得 14 var index = Math.floor(props.getProperty('index')); // "index"キーの値を取得、indexの小数点を無くす(1.0 → 1、2.0 → 2); 15 var review = review_candidate[index]; // 'reviewer'を格納 16 17 if(index >= 2){ 18 props.setProperty('index',0); 19 } else { 20 props.setProperty('index', ++index); // 全員を表示し終えたらindexをリセット 21 } 22 23 return review; 24} 25 26// Hangoutに入力されたら発動 27function onMessage(event) { 28 // 入力された文字列に"レビュー"が含まれていたら、レビュアーを自動で決める 29 if(/レビュー/.test(event.message.text)){ 30 var reviewer = randomReview() 31 } 32 return { 33 "text":reviewer 34 } 35} 36 37
json
1//appsscript.json 2 3{ 4 "timeZone": "Asia/Tokyo", 5 "dependencies": { 6 }, 7 "exceptionLogging": "STACKDRIVER", 8 "chat": { 9 } 10}
回答1件
あなたの回答
tips
プレビュー