Hello, GAS

これを元に進める

Gooleドライブでシートを作り、拡張機能でApps Scriptを作る

function doGet() {
// 拡張元のスプレッドシートを用意する
let sheet = SpreadsheetApp.getActive().getActiveSheet();
// シートから値を入手する
let values = sheet.getDataRange().getValues();
// list.htmlからフォーマットを用意
let templete = HtmlService.createTemplateFromFile("list");
templete.links = values;
// HTMLを組み立て
return templete.evaluate();
}

/// javascript
function doPost(e){
let sheet = SpreadsheetApp.getActive().getActiveSheet();
sheet.appendRow([new Date(), e.postData.contents]); // e.postData.contents に LINE からの json 形式データがある
}
///
デプロイして得られたURLをLINE Developersのwebhookに指定
公式アカウントに対して送られたメッセージ全てについてdoPost()
が発火する

//
function reply(contents){
let channelAccessToken = "「メッセージ送受信設定>アクセストークン」の長い文字列をここに貼り付ける";
let replyUrl = "https://api.line.me/v2/bot/message/reply"; // LINE にデータを送り返すときに使う URL
let options = {
method: 'post',
contentType: 'application/json',
headers: {
Authorization: 'Bearer ' + channelAccessToken
},
payload: JSON.stringify(contents) // 送るデータを JSON 形式に変換する
};
UrlFetchApp.fetch(replyUrl, options);
}
//
curl -v -X POST https://api.line.me/v2/bot/message/reply
-H 'Content-Type: application/json'
-H 'Authorization: Bearer {channel access token}'
-d '{
"replyToken":"nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"messages":[
{
"type":"text",
"text":"Hello, user"
},
{
"type":"text",
"text":"May I help you?"
}
]
}'
リファレンスを見ると、メッセージを送る時のエンドポイントが記載されている。
応答メッセージを送る時のエンドポイントを選択
リクエストの例には
ヘッダーにContent-TypeとAuthorizationを指定する
bodyにJSONを指定する