【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
)
)
)
)
あわせて読んでほしい!
コメント
まだコメントはありません。
コメントフォーム


