【超丁寧】オウム返しができる LINE bot を作成しよう!
セルフペースハンズオン資料
この資料は、現役インターンが語る!女子中高生に伝えたい、IT で働く魅力 | Code Polaris #07 で行うハンズオンの手順をまとめたものです。
概要
今回作成するのはオウム返しをしてくれるLINE botです。あなたが送ったメッセージをそのまま返してくれます。

事前の準備
本ハンズオンを進めるにあたり、下記のアカウントをご用意ください。
| 必要なアカウント | 説明 | 
|---|---|
| LINE アカウント | LINE Developersコンソールで作業ができるように、LINEアカウントまたはLINEビジネスアカウントをご用意ください。詳細は、LINE Developersコンソールへのログイン をご参考ください。 | 
| Google アカウント | Google Apps Scriptを利用するために、アカウントが必要です。これからご準備する方は、サインアップ からアカウントを作成してください。 | 
流れ
- LINE Developersコンソールにログインする
 - チャネルを作成する
 - Google Apps Scriptでウェブアプリのスクリプトを作成する
 - 作成したウェブアプリとLINE botを連携させる
 
1. LINE Developersコンソールにログインする
以下は、LINE Developersコンソールへのログインと同様の内容です。
LINE Developersコンソールにログインするには、LINE Developersサイトの右上にある[ログイン]をクリックします。

次の画面が表示されたら、[LINEアカウントでログイン]または[ビジネスアカウントでログイン]をクリックします。

LINEアカウントでログイン
[LINEアカウントでログイン]をクリックした場合、以下のいずれかの認証方法でログインできます。
- メールアドレスログイン:LINEアカウントのメールアドレスとパスワードを入力してログイン
 - QRコードログイン:表示されたQRコードを、スマートフォン版LINEのQRコードリーダーでスキャンしてログイン
 
開発者アカウントを作成する(初回ログイン時のみ)
LINEアカウントまたはビジネスアカウントでLINE Developersコンソールに初めてログインしたら、開発者アカウントを作成します。[開発者名]と[メールアドレス]を入力します。[開発者名]にはご自分の名前を、[メールアドレス]にはご自分のメールアドレスを入力してください。
LINE開発者契約をよく読み、同意できる場合はチェックボックスにチェックを入れて、[アカウントの作成]をクリックします。この作業は、初回ログイン時のみ必要です。

新規プロバイダーを作成する
- 
ホーム画面の[新規プロバイダー作成]をクリックします。

 - 
次に、[新規プロバイダー作成]画面で[プロパイダー名]にご自分の名前を入力してください。入力できたら、[作成]をクリックします。プロバイダーとは、アプリを提供する組織のことです。

 
2. チャネルを作成する
- 
作成したプロバイダーページで、[チャネル設定]タブの[Messaging API]をクリックします。

 - 
チャネルに必要な情報を入力します。

 
Messaging APIチャネルの設定のうち、入力する情報は以下のとおりです。
| 項目 | 説明 | 
|---|---|
| チャネルの種類 | Messaging API が選択されている | 
| プロバイダー | 先ほど設定したプロバイダー名(ご自分の名前)が既に表示されている | 
| チャネルアイコン(任意) | 設定したいLINEのアイコン | 
| チャネル名 | LINEのアカウント名を入力 | 
| チャネル説明 | どのようなbotなのかの説明を入力 | 
| 大業種 | 個人 | 
| 小業種 | 個人(学生) | 
| プライバシーポリシーURL(任意) | 入力する必要なし | 
| サービス利用規約URL(任意) | 入力する必要なし | 
- チャネルを確認する
チャネルが作成されたことを確認します。
 
3. Google Apps Scriptでウェブアプリのスクリプトを作成する
- 
Googleドライブにアクセスします。
[新規]をクリックします。

 - 
[その他]→[Google Apps Script]を選択してください。

 - 
すると、以下のようにスクリプトを作成できる画面に遷移します。

 - 
左上の「無題のプロジェクト」をクリックし、プロジェクトの名前を「無題のプロジェクト」から「LINE_bot」に変更します。[名前を変更]をクリックします。

 - 
既に以下のようなコードが存在していると思いますが、全て削除してください。
 
function myFunction() {
  
}
- アクセストークンを取得します。先ほどチャネルができたことを確認した画面に戻ってください。そして、[Messaging API設定]をクリックしてください。
 

- 
一番下までスクロールすると、チャネルアクセストークンが取得できます。
初めてチャネルアクセストークンを取得する場合は[発行]をクリックしてください。
(注意!:チャネルアクセストークンは誰にも教えないこと!チャネルアクセストークンが漏洩すると、意図しない第三者にチャネルを利用される可能性があります。たとえば、悪意のあるメッセージがすべての友だちに送信されるなどの危険があります。
チャネルアクセストークンの漏洩が疑われた場合は、漏洩の可能性があるチャネルアクセストークンを取り消して、再発行してください。)

 - 
Google Apps Scriptの画面に戻り、以下をそのままコピーして貼り付けます。この時、1行目の「ここにトークンを入力」の部分に7.で取得したチャネルアクセストークンを挿入します。
(注意!:チャネルアクセストークンは必ず''で囲むこと!) 
var ACCESS_TOKEN = 'ここにトークンを入力';
function doPost(e) {
  var event = JSON.parse(e.postData.contents).events[0];
  // 応答トークン
  var replyToken = event.replyToken;
  // ユーザーからのメッセージ
  var userMessage = event.message.text;
  // 応答メッセージ用のAPI URL
  var url = 'https://api.line.me/v2/bot/message/reply';
  if (userMessage === undefined) {
    // メッセージ以外(スタンプや画像など)が送られてきた場合
    userMessage = '???';
  }
  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);
}
- 
コードをデプロイします。右の[デプロイ]→[新しいデプロイ]をクリックしてください。

 - 
歯車マークをクリックし、[ウェブアプリ]をクリックします。

 - 
[アクセスできるユーザー]を[全員]に変更し、右下の[デプロイ]をクリックします。

 - 
デプロイが完了したらウェブアプリのURLをコピーします。

 
4. 作成したウェブアプリとLINE botを連携させる
- 
LINE Developersのチャネルの設定画面から[Messaging API設定]を選択し、[Webhook URL]に先程取得したウェブアプリのURLを入力し、[Webhookの利用]をオンにしてください。

 - 
同じく[Messaging API設定]の[LINE公式アカウント機能]から、[あいさつメッセージ]の[編集]をクリックします。

 - 
すると、LINE公式アカウントマネージャーの応答設定に移動します。設定の中にある[応答メッセージ]をオフにし、[Webhook]をオンに変更してください。

 
お疲れ様でした!👏
ここまでできたら、LINE botの完成です!!
LINE botを「友だち追加」すると、botがオウム返しをしてくれます!
Discussion