目次

前書き
免責事項
リポジトリについて
動作環境について
質問などがある場合
第1章 はじめに
1.1 できるようになること
1.2 LINE botについて
1.3 事前準備
1.4 アーキテクチャ
1.5 簡単な流れ
第2章 LINE botを作ってみよう
2.1 初回準備
2.2 動かしてみよう
第3章 Webhook eventについて
3.1 共通プロパティ
3.2 メッセージイベント
3.3 メッセージオブジェクトについて
第4章 コード解説
4.1 ディレクトリ構成
4.2 実行の流れ
4.3 各ファイルのコード解説
4.4 ソースコードを更新する方法
第5章 演習問題1
5.1 演習問題1-1
5.2 演習問題1-2
5.3 演習問題1-3
第6章 演習問題1の解説
6.1 演習問題1-1
6.2 演習問題1-2
6.3 演習問題1-3
第7章 LINE bot Designerの使い方
7.1 LINE bot Designerとは
第8章 演習問題2
8.1 演習問題2-1
第9章 Flex Messageについて
9.1 Flex Messageとは
第10章 演習問題3
10.1 演習問題3-1 Flex Message Simulatorを使ってみよう
第11章 リッチメニューについて
11.1 リッチメニューとは
11.2 リッチメニューを作ってみよう
第12章 プッシュメッセージについて
12.1 curlでの送り方
第13章 外部APIとの通信
第14章 DynamoDBの使い方
14.1 DynamoDBについて
14.2 AWSのCredentialについて
14.3 AWSのCredentialを作成
14.4 ローカルでDynamoDBを立ててみよう
第15章 演習問題4
15.1 演習問題に取り組む際に役立ちそうなTips
第16章 演習問題4の解説
16.1 演習問題4-1-1
16.2 演習問題4-1-2
16.3 演習問題4-2-1
16.4 演習問題4-2-2
第17章 AWSにデプロイしてみよう
17.1 デプロイ方法
おわりに

前書き

 ご購入いただきありがとうございます!

 本書籍は、技術書典で頒布した以下の「Hands-on LINEBOT」をベースに加筆・修正をしたものになっています。

 ・https://techbookfest.org/product/3EUnJ5WbexvCDyMgSJS1qb

 本書籍のサンプルコードは個人利用で一般的に使われるLINE Messaging APIの機能をだいたいカバーしており、簡単なLINE botならサンプルコードを改造するだけで一通り作れるようになっています。

 本書籍では、初心者でも理解できるということを念頭におきつつ、例えば、AWS Lambdaにデプロイする、ソースコードはできるだけ改造しやすいように書くなど、拡張性が高いように作成しました。コピー&ペーストだけで簡単に機能拡張できるようなサンプルコードになっています。

 書籍の内容も、「サンプルコードを改造するのに必要な知識」に重点を置いて執筆しました。サンプルコードの「どこをどういじればどのように動きが変わるのか」ということを理解して、サンプルコードを改造しながら自分の好きなLINE botを作れるようになっていただければ幸いです。

 また、本記事に掲載している解説の多くは公式リファレンス(https://developers.line.biz/ja/reference/messaging-api/)を参考に作成しています。このリファレンスは非常にわかりやすいため、作っていて何かわからないことがあったらリファレンスを参考にしましょう

免責事項

 本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。また、本書籍に掲載されている情報は2023/09/11現在のものです。

リポジトリについて

 本書で扱っているサンプルコードのリポジトリはhttps://github.com/shinbunbun/Hands-on-LINEBOT-impressです。

 masterブランチがハンズオンの完成形になっているため、適宜コードをコピー&ペースト等しながら進めてください。

動作環境について

 本書籍は以下の環境で動作確認済みです。

 ・NixOS 23.05

  ─Linux 6.4.7

 ・Node.js v18.17.1

 ・awscli v2.11.20

 ・Docker v20.10.25

質問などがある場合

 質問がある場合や誤植等を発見した場合は、https://twitter.com/shinbunbun_までお気軽にご連絡ください。

 ちょっとした質問などでも全然大丈夫です!

第1章 はじめに

 この本はハンズオン形式でLINE botの作り方を学ぶ本です。

 基本的なメッセージの返信から、ちょっとリッチなメッセージの作り方、トーク上に表示されるメニューの作成、外部APIとの連携、DB連携などを実装し、最終的にAWS Lambdaへデプロイします。

1.1 できるようになること

 ・ngrokを使ってLINE botを動かす

 ・一般的に使われるWebhook Eventの種類を理解する

 ・Messaging APIで返信できるメッセージの種類を理解する

 ・LINE Bot Designerを使ってLINE botのプロトタイプを作成する

 ・Flex Messageについて理解する

 ・リッチメニューについて理解する

 ・外部APIとの連携

 ・DynamoDBとの連携

 ・AWS Lambdaへのデプロイ

1.2 LINE botについて

 LINE botとは、当該Botのアカウントに対して何かメッセージを送ったら自動で返してくれるチャットボットのことです。

 たとえば以前私が作ったLINE botで、学校の時間割を確認できるbotがあります。

図1.1: 時間割bot

 LINE botにはただメッセージを返す以外にもさまざまな機能があります。この本では、LINE botに関する一通りの技術をハンズオン形式で学習していきます。

1.3 事前準備

 この書籍を読む前に以下の事前準備をしてください。

 ・JavaScriptの基本文法を学習する

  ─https://developer.mozilla.org/ja/docs/Web/JavaScript

 ・LINE Developers(https://developers.line.biz/ja/)のアカウントを作成して、コンソールからプロバイダを1つ作成する

  ─基本的には普段使っているLINEアカウントでログインしてください

 ・ngrok(https://ngrok.com/)のアカウントを作成する

 ・AWSのアカウントを作成する

  ─クレジットカードが必要です

 ・aws-cliを導入する

  ─https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html

  ─本書で使用しているバージョンはv2.11.20です

 ・Node.jsの環境を導入する

  ─https://nodejs.org/ja

  ─本書で使用しているバージョンはv18.17.1です

 ・Dockerを導入する

  ─https://docs.docker.com/get-docker/

  ─本書で使用しているバージョンはv20.10.25です

 ・curlコマンドとgitコマンドが使えることを確認する(使えなかったらインストールする)

1.4 アーキテクチャ

 本書のハンズオンで作成するLINE botは以下のようなアーキテクチャになっています(以下のアーキテクチャは開発段階のもので、最後にAWSへデプロイします)。

図1.2: アーキテクチャ

 ・Express

 ExpressはNode.jsでWebアプリケーションを実装するためのフレームワークです。今回はこれを使用してローカルにサーバを立てます。

 ・ngrok

 ngrokは、ローカルに立てたサーバをインターネット上に公開するためのツールです。LINE Messaging APIのWebhookイベントを受け取るにはサーバがインターネット上に公開されている必要があるため、今回はこちらを使用してNode.jsで立てたサーバを公開します。

1.5 簡単な流れ

 本書籍はざっくりと以下のような構成になっています。

 開発はローカルのNode.js(Express)とngrokを使って行い、最後にAWS Lambdaへデプロイします。

 1.LINE botのアカウントを作成する(Messaging APIのチャネルを作成する)

 2.GitHubのリポジトリからソースコードをcloneして、モジュールをインストールする

 3.LINE DevelopersからLINE Botの設定をする

 4.ngrokで試してみる

 5.LINE Bot Designerの使い方

 6.Flex Messageについて

 7.リッチメニューについて

 8.PUSHメッセージについて

 9.外部APIとの連携

 10.DynamoDBとの連携

 11.AWS Lambdaへのデプロイ

試し読みはここまでです。
この続きは、製品版でお楽しみください。