こんにちは、ともろう(@tomorrowSLog)です。
この記事は【LINE BOT】30分からできるLINE BOT開発④【フォローイベントの作成】の続きの記事です。
- おうむ返しのコード
- おうむ返しの仕様
- 結果
- LINE ボットシリーズ他の記事
おうむ返しのコード
LINEボットとGASの紐付けが終わっている状態を想定しています。
終わっていない場合、過去のLINEボットシリーズを見返して見てください。
おうむ返しコード全文
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
/*コード.gs*/ var channel_token = "アクセストークン" var url = "https://api.line.me/v2/bot/message/reply" function doPost(e) { var json = e.postData.contents var events = JSON.parse(json).events; events.forEach(function(event) { if(event.type == "follow") { follow(event); } else if(event.type == "message"){ if(event.message.type == "text"){ oumu(event); } } }); } function oumu(e) { var message = { "replyToken" : e.replyToken, "messages" : [{ "type": "text", "text" : e.message.text + "\uDBC0\uDC39" }]}; var options = { "method" : "post", "headers" : { "Content-Type" : "application/json", "Authorization" : "Bearer " + channel_token }, "payload" : JSON.stringify(message) }; UrlFetchApp.fetch(url, options); } |
おうむ返しの仕様
全体の流れ
- データを受信
- event.typeで場合分け
follow→フォローイベントへ
message→メッセージの内容確認へ - メッセージの内容により場合分け
text→おうむ返しイベントへ
その他→何もしない - おうむ返しイベントで、おうむ返しと顔文字を返す
というフロー。
前回のものにおうむ返し機能を上乗せしていく感じですね。
doPost(e)
データの場合分けでのevent.typeは前回やっているので割愛
メッセージイベントを受け取った際に、メッセージイベントの中身を確認します。
中身がテキストの場合におうむ返しをしたいので、event.message.typeを確認していきます。(line14)
これはデータのメッセージのタイプを返します。前回のスタンプメッセージを送るときに使いましたね。
メッセージイベントの中身を確認してtextであればoumu(e)にデータを渡していきます。
oumu(e)
メッセージイベント構造は第3回のものと変わりありません。
変更部分はline27の“text” : e.message.text + “\uDBC0\uDC39”の部分。
受け取ったメッセージの内容はmessageオブジェクトのtextのなかに格納されているので、それを受け取りそのまま返信として返していきます。
追加で語尾に🎶のような絵文字をつけています。おうむちゃんが歌うようにおうむ返しをしているみたいじゃないですか!?
絵文字を含むテキストメッセージの例はこのような形です。
1 2 3 4 |
{ "type": "text", "text": "\uDBC0\uDC84 LINE emoji" } |
\uDBC0\uDC84の部分が絵文字を示しているんですね。これに対応する文字列を対応表から探すと、0x100084…
全然形が違う!とはなりますが、ここは後ろ2桁を入れ変えるだけで大丈夫です。
今回使う絵文字に対応する文字列は0x100039 なので、後ろ2桁である39をとって“\uDBC0\uDC39”とすれば絵文字の設定が完了です。
参考 : Messaging APIリファレンス テキストメッセージ
結果
コードを書き終えたら、公開>ウェブアプリケーションとして導入から、
プロジェクト バージョン:new、アプリケーションにアクセスできるユーザー:全員(匿名ユーザーを含む)を指定してボットを更新してください。
あなた
おうむちゃん
あなた
おうむちゃん
みたいな感じになれば成功です!
LINEBOTシリーズ他の記事
1.【LINE BOT】30分からできるLINE BOT開発①【下準備】
2.【LINE BOT】30分からできるLINE BOT開発②【GASとLINEボットの紐付け】
3.【LINE BOT】30分からできるLINE BOT開発③【メッセージの送信】
4.【LINE BOT】30分からできるLINE BOT開発④【フォローイベントの作成】
5.【LINE BOT】30分からできるLINE BOT開発⑤【おうむ返しさせる】
6.【LINE BOT】30分からできるLINE BOT開発⑥【ユーザー登録のシステムを作る】
7.【LINE BOT】30分からできるLINE BOT開発⑦
8.【LINE BOT】30分からできるLINE BOT開発⑧
9.【LINE BOT】30分からできるLINE BOT開発⑨
10.【LINE BOT】30分からできるLINE BOT開発⑩
コメントを残す