Edited at

Google Apps ScriptでLINE BOTつくったら30分で動かせた件

More than 1 year has passed since last update.

GWだし前々から作ろうと思ってたLINE botをつくってみた。


サーバーどうしよ

ちょっと前まではherokuが定番だったが、無料枠のできることが変わって、常時稼働ができないみたい。

AWSのlambdaとかもありだけど、確実に無料なやつないかな、ないよな…


あんじゃん

先人の知恵を漁っていたらGoogle Apps Script(以下GAS)なら無料でサーバーレスできるだとっ!

GASも前々から気になっていたので、使ってみよう。

Line BotをGoogle App Scriptで無料で手軽に試してみる。


必要なもの


  • Googleアカウント

  • LINE developersアカウント

  • JavaScriptへの愛


LINE developers設定

LINEのbotなので、LINE developersで必要な登録と設定を済ませましょう。

この辺りはだいぶ前に登録だけしていたので割愛します。

こちらのリンクが参考になります。

LINEのBot開発 超入門(前編) ゼロから応答ができるまで


GASでコーディング

LINEの設定が終わったら、GASでコーディングしていきましょう。

Google Driveにログイン後、Googleスプレッドシートを選択。

スクリーンショット 2018-04-28 16.16.51.png

スプレッドシートを開いたらスクリプトエディタを選択。

(直接開く方法もありますが、今回はこっちでつくりました。)

スクリーンショット 2018-04-28 16.19.10.png

そしたらエディタが開くのでここにbotの中身をガリガリ書いていきましょう。

スクリーンショット 2018-04-28 16.23.27.png

ES6は対応していないようなので、constやらアロー関数やらは使わずに


bot.js

// LINE developersのメッセージ送受信設定に記載のアクセストークン

var ACCESS_TOKEN = '<Your Access Token>';

function doPost(e) {
// WebHookで受信した応答用Token
var replyToken = JSON.parse(e.postData.contents).events[0].replyToken;
// ユーザーのメッセージを取得
var userMessage = JSON.parse(e.postData.contents).events[0].message.text;
// 応答メッセージ用のAPI URL
var url = 'https://api.line.me/v2/bot/message/reply';

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': userMessage + 'ンゴ',
}],
}),
});
return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}


コーディング参考リンク

LINE公式 APIリファレンス


Webサービスとして公開

コーディングも終わったらこのスクリプトをウェブアプリケーションとして公開しましょう。

Webアプリ化する作業も簡単なのがいいですね。

スクリーンショット 2018-04-28 16.38.31.png

スクリーンショット_2018-04-28_16_40_09.png

こちらで発行されたURLをLINE DevelopersでWebhook URLに登録して完成です!

スクリーンショット_2018-04-28_16_43_47.png


動作確認

さっそくbotを友達登録して、LINEで話しかけてみましょう。

今回はユーザーが話しかけた言葉の語尾に「ンゴ」をつけるように設定しています。

スクリーンショット 2018-04-28 16.54.36.png

無事動作していますね!


簡単なLINE botはGASで

30分程度で実装できたので正直感動しました。

今回のbotのつくりだと実はメッセージにしか反応できないので、スタンプに対してはうまく返せないなどコードの改良点はまだまだありますが、遊ぶには十分かと。

いいね。GAS。