【GAS】ChatworkのメッセージをLINEのトークルームに転送したいです。
解決したいこと
GASでChatworkのメッセージをLINEのトークルームに転送したいです。
LINE Notifyを用いています。
以下のような手順で動かしたいと考えています。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
①はじめにGASをWEBアプリとして公開し、ChatworkのAPI設定よりWebhookで設定
②Chatworkに送信されたメッセージをスプレッドシートに移す
ーーーーここまでは問題なく動作していると思います。ーーーーー
③Googleスプレッドシートのセルから文字を取得してLINEに転送…
ここではアクティブなセルを取得して、LINEに送信しようと考えています。
■ここで自動で送信されません。
■スプレッドシートに手入力すると自動で送信されるので、何が原因か不明です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上の③以降の解決方法を教えていただきたいです。
独学の超初心者なので、専門的な用語が理解できないかもしれません。
お手柔らかにお願いいたします
※①,②は以下のコードで動いています。
function doPost(e) {
try {
var json = JSON.parse(e.postData.contents);
var body = json.webhook_event.body;
SpreadsheetApp.getActiveSheet().appendRow([body]);
} catch (e) {
return false;
}
return true;
}
発生している問題・エラー
上の「解決したいこと」で記載した以下の内容です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
③Googleスプレッドシートのセルから文字を取得してLINEに転送…
ここではアクティブなセルを取得して、LINEに送信しようと考えています。
■ここで自動で送信されません。
■スプレッドシートに手入力すると自動で送信されるので、何が原因か不明です。
該当するソースコード
function checkUpdate(){
var mySheet = SpreadsheetApp.getActiveSheet(); //シートを取得
var myCell = mySheet.getActiveCell(); //アクティブセルを取得
var row = myCell.getRow();
var q1 = mySheet.getRange(row, 1).getValue();
var message = "\nChatworkにタスクまたは、メッセージが送信されました。確認してください。\n"
+ "・内容:" + q1 + "\n"
;
sendLine(message);
}
function sendLine(msg){
var token = "LINE Notifyのトークン";
var options = {
"method": "post",
"Content-Type" : "application/json",
"payload": "message=" + msg,
"headers":{"Authorization" : "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options);
}
自分で試したこと
以下のサイトを参考にしてコードを書きました。
1 likes