43
65

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 3 years have passed since last update.

LINE BOTをGASで作成

Last updated at Posted at 2018-02-06

##はじめに

LINE BOTを作ってみた

  • 面白いことをやってみたかった
  • LINEという、普段使うツールで楽しさを求めてみた
  • gasを使った事がなかったので、試してみたかった
  • 注意→最近gasでスクリプトを作成する場合は、申請?が必要になった

必要なもの

  • googleアカウント
  • LINE developerアカウント

位でしょうか。。。
APIを使いたいなどあれば、別ですが、今回はこれだけで十分です。

コーディング

  • 今回は、特定の文字列が入力された際に、特定の返信を行えるように実装しました
//CHANNEL_ACCESS_TOKENを設定
//LINE developerで登録をした、自分のCHANNEL_ACCESS_TOKENを入れて下さい
var CHANNEL_ACCESS_TOKEN = 'YOU_ACCESS_TOKEN'; 
var line_endpoint = 'https://api.line.me/v2/bot/message/reply';

//ポストで送られてくるので、ポストデータ取得
//JSONをパースする
function doPost(e) {
  var json = JSON.parse(e.postData.contents);

  //返信するためのトークン取得
  var reply_token= json.events[0].replyToken;
  if (typeof reply_token === 'undefined') {
    return;
  }
  
  //送られたLINEメッセージを取得
  var user_message = json.events[0].message.text;  

  //返信する内容を作成
  var reply_messages;
  if ('かっこいい' == user_message) {
    //かっこいいと入力された際
    reply_messages = ['「' + user_message + '」ですね?\n' + '「' + user_message + '」はこちらになります。\n' + 'https://hogehoge.com',];

  } else if ('かわいい' == user_message) {
    //かわいいと入力された際
    reply_messages = ['「' + user_message + '」ですね?\n' + '「' + user_message + '」はこちらになります。\n' + 'https://hogehoge.com',];

  } else if ('普通' == user_message) {
    //普通と入力された際
    reply_messages = ['「' + user_message + '」ですね?\n' + '「' + user_message + '」はこちらになります。\n' + 'https://hogehoge.com',];

  } else {
    //かっこいい、かわいい、普通が入力されたときの処理
    reply_messages = ['「かっこいい」、「かわいい」、「普通」で入力してくださいね!'];
  }

  // メッセージを返信
  var messages = reply_messages.map(function (v) {
    return {'type': 'text', 'text': v};    
  });    
  UrlFetchApp.fetch(line_endpoint, {
    'headers': {
      'Content-Type': 'application/json; charset=UTF-8',
      'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
    },
    'method': 'post',
    'payload': JSON.stringify({
      'replyToken': reply_token,
      'messages': messages,
    }),
  });
  return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}

上記で出来上がりです。
では実際にビルドしてみましょう。

  • ファイル→保存
  • 公開→WEBアプリケーションとして導入...
    • プロジェクトバージョン→新規作成
    • 次のユーザーとしてアプリケーションを実行→自分
    • アプリケーションにアクセスできるユーザー:全員(匿名ユーザーを含む)
    • 更新
  • ここで表示される現在のウェブアプリケーションのURLをメモ
    • のちのWebhook URLで設定します

実装は以上です!!

次に、LINE developerの用意

  • 色々なやり方があるみたいですが、現在は日本語に対応しているので割と簡単に登録が出来ます

LINE developerの設定

  • Webhook URLを設定する(要SSL通信)
    • Webhook URLはgasで作成したURLを設定します
      • LINE developerに登録をしてから、反映されるまで2~3時間位かかるみたいです
        • botにコメントを流して、レスポンスが返ってきたらOKです。
        • 次回以降は、ソースの更新を行えば、すぐに反映されます!
  • 待っている間に、設定を進めましょう!
    • 設定値は下記の通りでbotが出来ます
      • アカウント設定 > bot設定 でまずは「APIを利用する」
      • Webhook送信 「利用する」
      • 自動応答メッセージ 「利用しない」(お好きにどうぞです!)

設定は以上です!!

あとはとにかく遊んでみて、色々修正してみて下さい!
AIのAPIなども使えるので、もっと面白いbotが出来ると思います。
そこらへんは、次回の更新で出来れば。。。

43
65
0

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
43
65

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?