【PHP】LINE BOTのCallback URLに渡されるデータの中身
LINE BOTでユーザーによる何かしらのアクションがあった場合、LINE BOTの作成時に指定したCallback URLにデータが渡されます。
ここでは、LINEのサーバーから送信されてくるデータの中身をまとめておきたいと思います。
はじめに
LINE BOTの作り方は【PHP】LINE BOTの作り方を参考にしてください。
LINE BOTでは、ユーザーが友達追加やブロック、メッセージ送信等を行ったときにLINE BOT作成時に登録したCallback URLにデータが送られてきます。
そして次のようにそのデータを受け取ります。
//データ取得 $json_string = file_get_contents('php://input'); $json_object = json_decode($json_string);
このとき「$json_object」をごにょごにょしてLINE BOTを開発するわけですが、データにはどんなものが含まれているのか?オブジェクトから必要な情報をピンポイントに取り出すにはどの引数を渡すべきなのか?を毎回忘れてしまうので、自分用にメモしておきます(なお、API reference for BOT APIに全てまとめられています)。
友達追加
ユーザーがLINE BOTに登録した際、Callback URLに次のようなデータが送られてきます。
[result] => Array ( [0] => Array ( [content] => Array ( [params] => Array ( [0] => ********************************* //ユーザーの「MID」 [1] => [2] => ) [message] => [reqSeq] => 0 [revision] => 237 [opType] => 4 ) [createdTime] => 1471965020552 [eventType] => 138311609100106403 [from] => ********************************* [fromChannel] => ********** [id] => WB****-********** [to] => Array ( [0] => ********************************* //LINE BOTの「MID」 ) [toChannel] => ********** //LINE BOTの「Channel ID」 ) )
なお、友達追加時のデータのポイントは[opType] が 4 になっているところです。
ブロック
ユーザーがLINE BOTをブロックした際、Callback URLに次のようなデータが送られてきます。
[result] => Array ( [0] => Array ( [content] => Array ( [params] => Array ( [0] => ********************************* //ユーザーの「MID」 [1] => [2] => ) [message] => [reqSeq] => 0 [revision] => 239 [opType] => 8 ) [createdTime] => 1471965362458 [eventType] => 138311609100106403 [from] => ********************************* [fromChannel] => ********** [id] => WB****-********** [to] => Array ( [0] => ********************************* //LINE BOTの「MID」 ) [toChannel] => ********** //LINE BOTの「Channel ID」 ) )
なお、友達追加時のデータのポイントは[opType] が 8 になっているところです。
メッセージ送信
ユーザーがLINE BOTに対してメッセージを送信した際、Callback URLに次のようなデータが送られてきます。
[result] => Array ( [0] => Array ( [content] => Array ( [toType] => 1 [createdTime] => 1471962560029 [from] => ********************************* //ユーザーの「MID」 [location] => [id] => ************* [to] => Array ( [0] => ********************************* //LINE BOTの「MID」 ) [ text ] => ほげほげテスト //ユーザーが送信したメッセージ [contentMetadata] => Array ( [AT_RECV_MODE] => 2 [SKIP_BADGE_COUNT] => true ) [deliveredTime] => 0 [contentType] => 1 [seq] => ) [createdTime] => 1471962560061 [eventType] => 138311609000106303 [from] => ********************************* [fromChannel] => ********** [id] => WB****-********** [to] => Array ( [0] => ********************************* //LINE BOTの「MID」 ) [toChannel] => ********** //LINE BOTの「Channel ID」 ) )
LINEのメッセージ送信で文章(テキスト)を送った場合は、上のように [contentType] は 1 になりますが、画像や動画、スタンプなどは次の数字が返ってきます。
- 画像:2
- 動画:3
- 音声:4
- 位置情報:7
- スタンプ:8
- 連絡先:10
- リッチ画像:12
メモ
ユーザープロフィールの戻り値
[contacts] => Array ( [0] => stdClass Object ( [displayName] => **** //ユーザーのLINE上の名前 [mid] => ********************************* //ユーザーの「MID」 [pictureUrl] => [statusMessage] => ) ) [count] => 1 [display] => 1 [pagingRequest] => stdClass Object ( [start] => 1 [display] => 1 [sortBy] => MID ) [start] => 1 [total] => 1
あわせて読んでほしい!
コメント
まだコメントはありません。