LINE BOTの作り方(GAS連携)

スポンサーリンク
プログラミング
スポンサーリンク
スポンサーリンク

LINE BOTの作り方

この記事で紹介したLINE BOTの作成完了までを紹介します。

システム構成

GAS(Google Apps Script)とLINE BOTを連携して作成しています。
構成はシンプルでLINEボットのメッセージをインプットにGASで処理し、レスポンスを返すといったものです。

作り方

LINE Business IDとGoogleアカウントを作成する

作成するにはLINE Business IDとGoogleアカウントが必要なので、未作成の場合は作成してください。

LINE Business IDを作成する
https://developers.line.biz/en/
Googleアカウントを作成する
https://www.google.com/

LINE DevelopersでMessageAPIを作成する

Line Developpers
https://developers.line.biz/console/

Line DeveloppersでMessageAPIを作成する。
必須項目を埋めて作成してください。

アクセストークンを作成する。
LINE Developers -> Messaging API -> Channel accsess tokenを発行する。
発行したtokenはGASのプログラム内で使用します。
未作成の場合は「Issue」になっていると思います。

GASプロジェクトを作成する

GAS
https://script.google.com/home

GASでプロジェクトを作成する

新規スクリプトを作成する。
gsファイルが作られるので、プログラムコードを入力する。
作成したプログラムコードは以下です。
channelTokenは作成したトークンを入力してください。

function doPost(e) {
  var replyToken= JSON.parse(e.postData.contents).events[0].replyToken;
  if (typeof replyToken === 'undefined') {
    return;
  }

  var url = 'https://api.line.me/v2/bot/message/reply';
  var channelToken = /** 作成したChannel accsess tokenを入力する **/;

  var input = JSON.parse(e.postData.contents).events[0].message;

  var splashOMatic_yomi = ['シャープマーカー','しゃーぷまーかー','シャープ','しゃーぷ','シャーカー','しゃーかー','シマネ','しまね'];
  var splashOMatic_giji = "シャープマーカー\n\nギア数:1,7 2,4 3,1\nダメージ:33.3";

  var splattershotPro_yomi = ['プライム','ぷらいむ','プライムシューター','ぷらいむしゅーたー','プラベ','ぷらべ','プラコラ','ぷらこら'];
  var splattershotPro_giji = "プライムシューター\n\nギア数:2,8 3,4\nダメージ:49.9";

  var l3Nozzlenose_yomi = ['L3リールガン','L3りーるがん','L3','エルスリー','えるすりー'];
  var l3Nozzlenose_giji = "L3リールガン\n\nギア数:0,8 1,5 2.2\nダメージ:33.3";

  var h3Nozzlenose_yomi = ['H3リールガン','H3りーるがん','H3','エイチスリー','えいちすりー'];
  var h3Nozzlenose_giji = "H3リールガン\n\nギア数:2,8 3,4\nダメージ:49.9";

  var squeezer_yomi = ['ボトルガイザー','ぼとるがいざー','ボトル','ぼとる'];
  var squeezer_giji = "ボトルガイザー\n\nギア数:0,7 1,4 2,0\nダメージ:33.3";

  var splatDualies_yomi = ['スプラマニューバ','すぷらまにゅーば','マニューバ','まにゅーば','マニュ','まにゅ','マニュコラ','まにゅこら','マニュべ','まにゅべ'];
  var splatDualies_giji = "スプラマニューバ\n\nギア数:1,8 2,4 3,1\nダメージ:33.3";

  var tetraDualies_yomi = ['クアッドホッパー','くあっどほっぱー','クアッド','くあっど','クア','くあ','ブラック','ぶらっく','ホワイト','ほわいと'];
  var tetraDualies_giji = "クアッドホッパー\n\nギア数:2,9 3,6\nダメージ:33.3";

  var dualieSquelchers_yomi = ['デュアルスイーパー','でゅあるすいーぱー','デュアル','でゅある','ザリガニ'];
  var dualieSquelchers_giji = "デュアルスイーパー\n\nギア数:2,9 3,6\nダメージ:33.3";

  var hydraSplatling_yomi = ['ハイドラント','はいどらんと','ハイドラ','はいどら','ハイカス','はいかす'];
  var hydraSplatling_giji = "ハイドラント(フルチャージ以外)\n\nギア数:0,5 1,2\nダメージ:33.3";

  var bamboozler_yomi = ['14式竹筒銃','14式竹筒銃・甲','14式竹筒銃・乙','14式竹筒銃・丙','竹','タケ','たけ'];
  var bamboozler_giji = "14式竹筒銃\n\nギア数:2,8 3,5\nダメージ:99.9";

  var default_message = "擬似確ブキではないです。以下からブキを選んでください。\n\nシャープマーカー\nプライムシューター\nL3リールガン\nH3リールガン\nボトルガイザー\nスプラマニューバ\nクアッドホッパー\nデュアルスイーパー\nハイドランド\n14式竹筒銃\n\n略語でも大丈夫です!";
  var message = default_message;

  if(input.type == 'text') {
    if(splashOMatic_yomi.indexOf(input.text) != -1) {
      message = splashOMatic_giji;
    }else if(splattershotPro_yomi.indexOf(input.text) != -1){
      message = splattershotPro_giji;
    }else if(l3Nozzlenose_yomi.indexOf(input.text) != -1){
      message = l3Nozzlenose_giji;
    }else if(h3Nozzlenose_yomi.indexOf(input.text) != -1){
      message = h3Nozzlenose_giji;
    }else if(squeezer_yomi.indexOf(input.text) != -1){
      message = squeezer_giji;
    }else if(splatDualies_yomi.indexOf(input.text) != -1){
      message = splatDualies_giji;
    }else if(tetraDualies_yomi.indexOf(input.text) != -1){
      message = tetraDualies_giji;
    }else if(dualieSquelchers_yomi.indexOf(input.text) != -1){
      message = dualieSquelchers_giji;
    }else if(hydraSplatling_yomi.indexOf(input.text) != -1){
      message = hydraSplatling_giji;
    }else if(bamboozler_yomi.indexOf(input.text) != -1){
      message = bamboozler_giji;
    }
  }

  var messages = [{
    'type': 'text',
    'text': message,
  }];

  UrlFetchApp.fetch(url, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + channelToken,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'replyToken': replyToken,
      'messages': messages,
    }),
  });
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}

デプロイ-> 新しいデプロイ

説明に適当な名前をいれて、アクセスできるユーザを「全員」に変更

ウェブアプリのURLをコピー

LINE DevelopersでWebhookAPIを設定

LINE Developers -> Messaging API -> Webhook settings にさきほどのURLを設定。
Verifyで接続が問題ないことを確認する。

応答メッセージをオフ、Webhookをオンに変更

以上で完了です。
作成したMessaging APIのChannelを友達登録して、動作すれば成功です。

タイトルとURLをコピーしました