【PHP】LINE BOT のWebhook URLに渡されるデータの中身
公開日:
更新日:
カテゴリー: LINE BOT
「Messaging API」を利用したLINE BOTでは「Webhook URL」を指定し、そのURL(ページ)を介してLINEサーバーとLINE BOTを動かしているサーバーでデータのやりとりを行います。
さて、LINE BOTに友達登録したユーザーが何かしらのアクションを行ったとき、「Webhook URL」にLINE サーバーからどのようなデータがどのような形で渡されるのか気になったので調べてみました。
JSONエンコードされたデータを受け取る
LINE BOTの作り方は【PHP】LINE BOTの作り方 on Messaging APIを参考にしてください。
LINEユーザーが
- 友達登録
- ブロック
- テキストメッセージ送信
- スタンプ送信
- 画像送信
- 動画送信
を行ったとき、LINEサーバーからはJSONエンコードされたデータが「Webhook URL」に渡されます。
JSONデコードする
そのため、
//データ取得 $json_string = file_get_contents('php://input'); $json_object = json_decode($json_string);
のようにして、JSONデコードして「$json_object」にデータを渡します。
このあとに「$json_object」をごにょごにょしてLINE BOTを開発するわけですが、どのようなデータがどのような形で渡されるのか、オブジェクトから必要な情報を素早く取り出し、LINE BOTの開発がスムーズにできるように一通りまとめておきたいと思います。
なお、API ReferenceにLINE BOTの開発に必要な情報はまとめられています。
「Webhook URL」に渡されるデータ一覧
では、実際にLINEユーザーがアクションを起こしたとき、「Webhook URL」にどんなデータが渡されるのかまとめたいと思います。
友達登録
stdClass Object ( [events] => Array ( [0] => stdClass Object ( [type] => follow [replyToken] => 876bb0ce1f414031b9436e467b464890 => stdClass Object ( [userId] => ********************************* [type] => user ) [timestamp] => 1492000391659 ) ) )
ブロック
stdClass Object ( [events] => Array ( [0] => stdClass Object ( [type] => unfollow => stdClass Object ( [userId] => ********************************* [type] => user ) [timestamp] => 1492000263962 ) ) )
テキストメッセージ送信
stdClass Object ( [events] => Array ( [0] => stdClass Object ( [type] => message [replyToken] => 1f030a36959e4c93b13eaf87acb27e3d => stdClass Object ( [userId] => ********************************* [type] => user ) [timestamp] => 1491998504854 [message] => stdClass Object ( [type] => text [id] => 5927210901035 => ほげほげ~ ) ) ) )
スタンプ送信
stdClass Object ( [events] => Array ( [0] => stdClass Object ( [type] => message [replyToken] => 7529a147ee444c6da531ed6a21689599 => stdClass Object ( [userId] => ********************************* [type] => user ) [timestamp] => 1491998511426 [message] => stdClass Object ( [type] => sticker [id] => 5927211520872 [stickerId] => 113 [packageId] => 1 ) ) ) )
画像送信
stdClass Object ( [events] => Array ( [0] => stdClass Object ( [type] => message [replyToken] => 9ba945d0ac994f2a8a082608db4033bf => stdClass Object ( [userId] => ********************************* [type] => user ) [timestamp] => 1491998522545 [message] => stdClass Object ( [type] => image [id] => 5927212566126 ) ) ) )
動画送信
stdClass Object ( [events] => Array ( [0] => stdClass Object ( [type] => message [replyToken] => d2c842bcf6124b428c8982c2c23bc3a7 => stdClass Object ( [userId] => ********************************* [type] => user ) [timestamp] => 1491998534503 [message] => stdClass Object ( [type] => video [id] => 5927213695582 ) ) ) )
あわせて読んでほしい!
コメント
まだコメントはありません。
コメントフォーム