前提・実現したいこと
こちらを参考に
https://tonari-it.com/gas-chatwork-omikuji/
gasで、チャットワークにメッセージを送信はできたのですが、
スプレッドシートの内容を取得してチャットワークに送信すると、
取得したメッセージ送信後、数秒後に「#N/A」が送られてしまいます。
いろいろ試したところ、どうやら上記スプレッドシートの内容を取得している部分を、
外すと「#N/A」は送られてこないため、ここが問題だと思っているのですが、
ログでエラーもなさそうで、解決に至りませんでした。
どのように対応すればよろしいでしょうか?
該当のソースコード
function message(){ /* メッセージを取得 */ var params = { headers : {"X-ChatWorkToken" : 'XXX'}, method : "get" }; var roomID = XXX; //ルームID var url = "https://api.chatwork.com/v2/rooms/" + roomID + "/messages?force=0"; //指定のグループチャットからメッセージを取得 var strRespons = UrlFetchApp.fetch(url, params); //チャットワークAPIエンドポイントからレスポンスを取得 var json = JSON.parse(strRespons.getContentText()); //文字列をJSON形式として解析しJSONオブジェクトとして返す /* リクエスト用パラメータ・URLの準備 */ params.method="post"; //リクエストメソッドをpostに設定 var payload = { body : "" }; params.payload=payload; //リクエストペイロードのbodyを一旦セット url = "https://api.chatwork.com/v2/rooms/" + roomID + "/messages"; //指定のグループチャットにメッセージを送る /* json内に指定のメッセージがあればチャットワークに送信 */ for(var i=0;i< json.length;i++){ var obj = json[i]; var pattern= /.*(XXX).*/g; //反応するメッセージの定義 if(pattern.test(obj.body)){ params.payload.body = message2() ; //チャットワークに送るテキスト UrlFetchApp.fetch(url, params); //チャットワークAPIエンドポイントにリクエスト } } } function message2(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sht = ss.getSheetByName('シート名'); set = sht.getRange('A1').setValue("hoge"); //検索用に一旦スプレにセット get = sht.getRange("B2").getValue(); //検索結果の取得 results= [get]; return results[Math.floor(Math.random()*results.length)]; // ランダムの必要はいため後で修正 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。