212
216

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2018-04-28

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

スプレッドシートを開いたら、拡張機能タブからApps Scriptを選択。
(直接開く方法もありますが、今回はこっちでつくりました。)
スクリーンショット 2023-04-04 10.32.18.png

そしたらエディタが開くのでここにbotの中身をガリガリ書いていきましょう。
スクリーンショット 2023-04-04 10.33.45.png

bot.js
function doPost(e) {
  // LINE developersのMessaging API設定に記載のチャネルアクセストークン
  const ACCESS_TOKEN = '<Your Access Token>';
  // リクエストに含まれる最新のメッセージデータ
  const latestEvent = JSON.parse(e.postData.contents).events[0];
  // WebHookで受信した応答用Token
  const replyToken = latestEvent.replyToken;
  // ユーザーのメッセージを取得
  const userMessage = latestEvent.message.text;
  // 応答メッセージ用のAPI URL
  const 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リファレンス
Google Apps Scriptリファレンス

Webサービスとして公開

コーディングも終わったら、右上のデプロイボタンからこのスクリプトをデプロイし、ウェブアプリケーションとして公開しましょう。
Webアプリ化する作業も簡単なのがいいですね。

スクリーンショット 2023-04-04 10.21.50.png

アクセスできるユーザーは「全員」としないとLINEからアクセスできないので注意しましょう。

デプロイ設定.png

デプロイURL.png

上記でウェブアプリの発行されたURLをLINE DevelopersのMessaging API設定内のWebhook URLに登録して完成です!

Webhook設定.png

動作確認

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

今回はユーザーが話しかけた言葉の語尾に「ンゴ」をつけるように設定しています。
スクリーンショット 2018-04-28 16.54.36.png

無事動作していますね!

簡単なLINE botはGASで

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

いいね。GAS。

212
216
2

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
212
216

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?