LoginSignup
1
2

More than 3 years have passed since last update.

LINE BOT GASスニペット 【初心者用】最も基本的な書き方

Last updated at Posted at 2019-06-25

はじめに

プログラミングの入門にLINE BOTをたくさん作れば勉強になるかなと思って、シンプルな応答のプログラムは、基本的に記載内容はほぼ一緒だから定形を作っておけば、一部内容をいじるだけで作れるかなと、スニペットを作ってみました。

使い方

GoogleAppsScriptに下記コードをコピペするだけで、テンプレートが返されるコードです。あくまでテンプレートなので、返信内容は任意で変更してください。
LINE_ACCESS_TOKEN 部分は、任意のトークン設定となりますので、取得したトークンに書き換えてください。

var LINE_ACCESS_TOKEN = PROPERTIES.getProperty('LINE_ACCESS_TOKEN');

IMG_9934.PNG

コード

line_bot_gas.js
var LINE_ACCESS_TOKEN = PROPERTIES.getProperty('LINE_ACCESS_TOKEN');
var LINE_END_POINT = "https://api.line.me/v2/bot/message/reply";
var reply_token;

//ラインからGASへのリクエスト時の処理
function doPost(e){
  var json = JSON.parse(e.postData.contents); //送られた内容をJSONから変換
  reply_token = json.events[0].replyToken; //送られたメッセのトークンを取得
  response_message(); //下記関数を実行 応答メッセージ
}

//応答詳細
function response_message(){
  //応答の定形 LINEリファレンスのまま
  var messages = [{
    "type": "template",
      "altText": "This is a buttons template",
      "template": {
          "type": "buttons",
          "thumbnailImageUrl": "https://example.com/bot/images/image.jpg",
          "imageAspectRatio": "rectangle",
          "imageSize": "cover",
          "imageBackgroundColor": "#FFFFFF",
          "title": "Menu",
          "text": "Please select",
          "defaultAction": {
              "type": "uri",
              "label": "View detail",
              "uri": "http://example.com/page/123"
          },
          "actions": [
              {
                "type": "postback",
                "label": "Buy",
                "data": "action=buy&itemid=123"
              },
              {
                "type": "postback",
                "label": "Add to cart",
                "data": "action=add&itemid=123"
              },
              {
                "type": "uri",
                "label": "View detail",
                "uri": "http://example.com/page/123"
              }
          ]
      }
  }]; //ここまで
//応答処理
  UrlFetchApp.fetch(LINE_END_POINT,{ 
    "headers":{
      "Content-Type" : "application/json; charset=UTF-8", //JSONの場合
      //Authorizationを設定する場合
      "Authorization" : "Bearer " + LINE_ACCESS_TOKEN,
    },
    "method" : "post", 
    "payload" : JSON.stringify({ //オブジェクトをJSONに変換
      "replyToken": reply_token, //LINEでBotに送られたメッセのtoken,変数指定しておく
      "messages": messages //上記messagesは長いので変数化しておく
    })
  });
}

アレンジ方法

上の画像を見てわかるように、
画像、タイトル、テキスト、Buyボタン、Add To Cartボタン、View Detailボタンの準に配置されています。コードを読めば対象部分がどこかわかると思うので、そのボタンのリンク先や記載内容、掲載画像を変更したら、最低限の使い方がわかるかなと思います。
ぜひお試しくださいませ〜

その他、もっとシンプルな書き方などあるよ!っていう場合は教えてくださいませ!

1
2
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
1
2