この記事はCCS Advent Calendar 2018 5日目の記事です。
adventar.org
前の人 おじょう
qiita.com
おはようございます、KOMA27です。OBなのに大学にいます。
今回はいつもと違って技術的なお話です。
嘘です。(3行でバレる嘘をつくな)
正確には半分嘘です。
LINEbotという誰でも1度は聞いたことのあるbotを今回は作ろうと思います。
簡単に作ってみたものが以下のとおりです。
こんな感じのものを今回は作ろうと思います。
けど最初の部分だけね。
事前に用意するもの
・LINEの個人アカウント
・Googleのアカウント
・適当なぱそこん
・やるき
1.準備
1-1.LINE Business アカウントの作成
↓ここから頑張って(書くと長いので)
https://business.line.me/ja/services/bot
作るのは一般アカウントで大丈夫です。
1-2.Messaging API Developer Trialに登録
Line Business centerのアカウントリストに「Messaging API Developer Trial」があるので
クリックして申請をする、以上。
1-3.LINE@ MANAGERの設定
Bot設定でAPIを利用するを有効にする
Webhook送信を利用するにチェック
LINE Developersで設定するでLINE Developersに移動する
初めの登録を完了させると、チャネル基本設定下部でアクセストークンが手に入る
一応準備は完了
2.Google Apps Scriptを使ってコードをバシバシ書く
言語はJavaScriptだが、慣れてない人が多いはず。でも安心してほしい。ほぼコピペでよい。
Google Apps Script https://script.google.com/home
上のページから「新規スクリプト」で新しくプロジェクトを作ろう。
無題のプロジェクトを適当に名前を変えたらあとはコピペだ!
//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); }
|
これらは、ある特定のワードを受け取った時に、特定の返信をするコードだ。
コードのコピペをして、アクセストークンを書き換えたら、下記のように、
「ウェブアプリケーションとして導入」をクリック
プロジェクトバージョンは、ソースコードを更新したら「新規作成」。
次のユーザーとしてアプリケーションを実行はそのまま。
アプリケーションにアクセスできるユーザーは「全員(匿名ユーザーを含む)」
にして導入。
するとURLが出てくるので、これをLINE@ MANAGERにぶち込む
>完成<
ちなみにこのGoogle Apps Script、当然の如くスプレッドシートと連携ができる。
スプレッドシートにデータベースを置いておくことで、いろんなLINE BOTが作れると思う。
私はボルテと弐寺のランセレbotを作りました。
興味があったら試してね。