ポートフォリオサイト公開中

【LINE BOT】30分からできるLINE BOT開発④【フォローイベントの作成】

30分からできるLINEボット開発

こんにちは、ともろう(@tomorrowSLog)です。

この記事は【LINE BOT】30分からできるLINE BOT開発③【メッセージの送信】の続きの記事になります。

  1. フォローイベントのコード
  2. フォローイベントの仕様
  3. 結果
  4. LINE ボットシリーズ他の記事





フォローイベントのコード

LINEボットとGASの紐付けが終わっている状態を想定しています。

終わっていない場合、過去のLINEボットシリーズを見返して見てください。

フォローイベントコード全文

/*コード.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);
    } 
 });
}

function follow(e) {
  var message = {
    "replyToken" : e.replyToken,
    "messages" : [{
        "type": "text",
        "text" : "フォローありがとう!"
      },{
        "type": "sticker",
        "packageId": "11539",
        "stickerId": "52114131"
      }]};
  var options = {
    "method" : "post",
    "headers" : {
      "Content-Type" : "application/json",
      "Authorization" : "Bearer " + channel_token
    },
    "payload" : JSON.stringify(message)
  };
  UrlFetchApp.fetch(url, options);
}






フォローイベントの仕様

全体の流れ

全体の流れは前回の【LINE BOT】30分からできるLINE BOT開発③【メッセージの送信】とほとんど変わりありません。

  1. データを受信
  2. データの場合分け
    フォローされる→follow(e)を返す
    それ以外→何もしない
  3. follow(e)でメッセージとスタンプを返す

みたいなことをします。

細かいところを見ていきましょう。

doPost(e)

データの場合分けにeventtypeプロパティを用います。(line10)

これはLINEプラットフォームで生成されるイベントの種類を返します。

今回は友達追加やブロック解除された時を表すフォローイベントfollowを判別します。

イベントの種類

  • メッセージイベント message
    メッセージを含むイベント
  • フォローイベント follow
    友だち追加またはブロック解除のイベント
  • フォロー解除イベント unfollow
    ブロックされた時のイベント
  • 参加イベント join
    グループやルームに入った時のイベント
  • 退出イベント leave
    グループやルームから出た時のイベント

などなど

参考 : Messaging APIリファレンス Webhookイベントオブジェクト

follow(e)

基本構造は前回reply(e)変わりありませんが、今回はメッセージを2つ送信し、そのうちの一つがスタンプという構造になっています。

“messages”には最大5件のメッセージを入れることができます。

またmessageのtypeを指定することで、画像やスタンプなどテキスト以外の返信メッセージを設定できます。

message.typeの種類

  • テキストメッセージ text
  • スタンプメッセージ sticker
  • 画像メッセージ image
  • 動画メッセージ video

などなど

参考 : Messaging APIリファレンス メッセージオブジェクト

スタンプメッセージの構造は以下のような形をとり、packageIdstickerIdでスタンプの指定をします。

対応表はこちらから

{
  "type": "sticker",
  "packageId": "1",
  "stickerId": "1"
}

 



結果

コードを書き終えたら、公開>ウェブアプリケーションとして導入から、

プロジェクト バージョン:newアプリケーションにアクセスできるユーザー:全員(匿名ユーザーを含む)を指定してボットを更新してください。

そのあとボットを友達追加する or ブロック→ブロック解除で挙動の確認をすることができます。



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開発⑩

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です