LoginSignup
5
4

More than 3 years have passed since last update.

【個人的備忘録】GASでGoogle Spread Sheet の値を読み取ってLINE Botに送った話

Posted at

やったこと

・LINE Bot宛に特定のメッセージを送ることで,Google Drive 上のSpread Sheetのセルの値を読み取り,それをメッセージとして返すという流れをGoogle Apps Scriptで実現した.

使い方

① Google DriveでGASのスクリプトファイルを作成する.
図1.png
②以下のスクリプトをコピペ.LINE Messaging APIのアクセストークンとスプレッドシートのURLを入力する.


// LINE Messaging APIのアクセストークン 
var ACCESS_TOKEN = 'hogehoge' 

// ユーザがメッセージ送信したときに動く関数
function doPost(e){
    var replyToken = JSON.parse(e.postData.contents).events[0].replyToken; 
    var userMessage = JSON.parse(e.postData.contents).events[0].message.text; 
    var url = 'https://api.line.me/v2/bot/message/reply'; 
    var headers = { 
      'Content-Type': 'application/json; charset=UTF-8' ,
      'Authorization': 'Bearer ' +ACCESS_TOKEN 
    };

    // Google Spread Sheetを開き,読み込む
    var sheet = SpreadsheetApp.openByUrl("https://hugahuga");
    var val = sheet.getRange("A1").getValue();

    var reply = null;

    if(userMessage === 'A1の値を教えて!'){
     reply = "A1の値は" + val + "です.";
    }else{
     reply='A1の値を教えて!と言うことでA1の値を返します.';
    }

     //送信内容
    var payload = JSON.stringify({
      'replyToken': replyToken ,
      'messages': [{   
         'type': 'text' ,
         'text': reply
        }] 
      } ) 

    var options = { 
      'headers' : headers ,
      'method' : 'post' ,
      'payload' : payload }; 

    // メッセージを応答 
    UrlFetchApp.fetch(url ,options)
}

③ 公開→ウェブアプリケーションとして導入と進んで,
Project version:New
Execute the app as:Me
Who has access to the app:Anyone
と設定して「更新」を選択.Webアプリとしてデプロイされる.

④表示されるURLをWebhookURLとしてLINE Messaging APIに登録する.

上のスクリプトでは,セルのA1の値を読み取っている.
LINEで「A1の値を教えて!」と送信すると,A1の値が返ってくる.

以上.

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4