【GAS/LINE WORKS】Botにオウム返しをさせる

GAS(Google Application Script)に戻る

目次

概要

Botに何かメッセージを吐かせるには、以下の手順が必要になる。

  • LINE WORKSでアカウント作成
  • LINE WORKSでプロジェクト作成
  • Botの作成
  • GASで認証をする
  • GASのプログラムとBotを結びつける(コールバックの設定)

まず基礎として、メッセージをLINE WORKSで

ソースコード

function doPost(e) {
  if (e == null || e.postData == null || e.postData.contents == null) {
    console.log("error")
    return;
  }
  var requestJSON = e.postData.contents;
  var requestObj = JSON.parse(requestJSON);
  var sendMsg = requestObj.content.text;

  let env = getEnv_()
  env.userId = requestObj.source.userId

  LINEWORKS.userMessageSend(env, sendMsg);
}

function getEnv_() {
  return {
    CLIENT_ID: [Client ID],
    CLIENT_SECRET: [Client Secret],
    SERVICE_ACCOUNT: [Service Account],
    PRIVATE_KEY: "-----BEGIN PRIVATE KEY-----\n[Private Keyの内容]\n-----END PRIVATE KEY-----",
    DOMAIN_ID: [DOMAIN ID],
    ADMIN_ID: "[ログインする時のID]",
    BOT_ID: [BotのID]
  }
}

デモ動画

詳細

LINE WORKSでアカウント作成

公式ページの「今すぐはじめる」のところからアカウントを新規作成する。
この点は問題なくできると思う。ちなみに、今回は開発なので「管理者として始める」を選択して必要事項を入力していく。

LINE WORKSでプロジェクト作成

  1. Developers Consoleのページから「アプリの新規追加」を押下する
  2. アプリ名を入力して「同意して作成する」を押下する
  3. アプリの説明を何かしら入力して「保存」を押下する

プログラムを書く

GASはスプレッドシートの「拡張機能」->「Apps Script」から作成する。

Botにメッセージを送らせるには以下の箇所にアカウントやbotのデータを送る必要がある。

function getEnv_() {
  return {
    CLIENT_ID: [Client ID],
    CLIENT_SECRET: [Client Secret],
    SERVICE_ACCOUNT: [Service Account],
    PRIVATE_KEY: "-----BEGIN PRIVATE KEY-----\n[Private Keyの内容]\n-----END PRIVATE KEY-----",
    DOMAIN_ID: [DOMAIN ID],
    ADMIN_ID: "[ログインする時のID]",
    BOT_ID: [BotのID]
  }
}
  • CLIENT_ID
  • CLIENT_SECRET
  • SERVICE_ACCOUNT
    1. Developers Consoleのページから左端の「API」->「ClientApp」を選択
    2. 今回実装を行なっているプロジェクトを選択
    3. 以下の画面が表示されるので、そこに以下の項目のデータがある。
    • CLIENT_ID
    • Client Secret
    • Service Account
  • PRIVATE_KEY
    1. Developers Consoleのページから左端の「API」->「ClientApp」を選択
    2. 今回実装を行なっているプロジェクトを選択
    3. Private Keyの項目の「発行 / 再発行」を押下してファイルをダウンロードする。
    4. エディタで開くと(メモ帳とか)文字列の羅列がある。それらの改行をすべて「\n」に置き換えて一行の文字列にした後、上記の「PRIVATE_KEY」に格納する。
  • DOMAIN_ID
    Developers Consoleのページの右端に表示されている
  • ADMIN_ID
    ログインする時に入力するID
  • BOT_ID
    1. Developers Consoleのページから左端の「Bot」を選択
    2. 現在使用しているBotを選択
    3. BotのページにBot IDが表示されてるので、その数字を入力する

プログラムをBotに反映させる

プログラムが書けたら「デプロイ」を押下して「新しいデプロイ」を押下する。

次に、アクセスできるユーザーを「全員」にして「デプロイ」ボタンを押下する。
そうすると以下のような情報が表示される。

下の「ウェブアプリ」のURLをコピーする。
そして、Botのページの以下の場所に貼り付ける。

Developers ConsoleのBot一覧から使用しているBotを選択し、一番下の「修正」ボタンを押下する。
すると、「Call Back URL」が編集できるようになるので、そこに先ほどコピーした「ウェブアプリのURL」を貼り付ける。

実行してみよう

ここまでで何も問題がなければ自分が送ったメッセージがそのままBotから返ってくるはずだ!

参考ページ

GAS(Google Application Script)に戻る