Q&A

GASで2つのイベントに対応する方法ついて

今、GASでグループのメンバーが参加したら挨拶する文が書いてあるものを使っているのですが、これに退出イベントの文を書き加える方法はありますか? またあるならどのようにしたらいいのでしょう?

var ACCESS_TOKEN = '~~~~~~' ;
var url = 'https://api.line.me/v2/bot/message/reply'; // 応答メッセージ用のAPI URL
 
/**
 * doPost
 * ユーザーがLINEにメッセージ送信した時の処理
 **/
function doPost(e) {
 
    // メッセージ返信
    replyMessage(e);
    return ContentService.createTextOutput(JSON.stringify({ content: 'post ok' })).setMimeType(ContentService.MimeType.JSON);
};
 
/**
 * replyMessage
 * メッセージの返信
 **/
var replyMessage = function (e) {
    var members = JSON.parse(e.postData.contents).events[0].joined.members;
    var replyToken = JSON.parse(e.postData.contents).events[0].replyToken;
    
    UrlFetchApp.fetch(url, {
        headers: {
            'Content-Type': 'application/json; charset=UTF-8',
            Authorization: 'Bearer ' + ACCESS_TOKEN
        },
        method: 'post',
        payload: JSON.stringify({
            replyToken: replyToken,
            messages: [
                {
                    type: 'text',
                    text: 'よろしくお願いします。ノート確認もお願いします。 '
                }
            ]
        })
    });
};
  • 0
  • 1
  • 4162
  • twitter facebook

投稿されたコードですと単一のイベントしか拾っていません。

    var members = JSON.parse(e.postData.contents).events[0].joined.members;

すべてのイベントに対してイベントTypeごとの処理をされればよいと思います。

    var events = JSON.parse(e.postData.contents).events;
		for(var n=0; n<events.length; n++) {
			if(events[n].type == "") {
					// 処理
			}
		}
  • 0
Are you sure? question.vm