@artkendou

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【GAS】ChatworkのメッセージをLINEのトークルームに転送したいです。

解決したいこと

GASでChatworkのメッセージをLINEのトークルームに転送したいです。
LINE Notifyを用いています。

以下のような手順で動かしたいと考えています。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
①はじめにGASをWEBアプリとして公開し、ChatworkのAPI設定よりWebhookで設定
②Chatworkに送信されたメッセージをスプレッドシートに移す
ーーーーここまでは問題なく動作していると思います。ーーーーー
③Googleスプレッドシートのセルから文字を取得してLINEに転送…
 ここではアクティブなセルを取得して、LINEに送信しようと考えています。
■ここで自動で送信されません。
■スプレッドシートに手入力すると自動で送信されるので、何が原因か不明です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上の③以降の解決方法を教えていただきたいです。
独学の超初心者なので、専門的な用語が理解できないかもしれません。
お手柔らかにお願いいたします:confounded:

※①,②は以下のコードで動いています。

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

No Answers yet.

Your answer might help someone💌