Я пытаюсь создать веб-крючок для API на основе подписки, который отправляет мне данные JSON всякий раз, когда устройство IoT претерпевает изменения.Кажется, я не могу запустить функцию и не могу выяснить причину этого.
Данные, которые API предоставит мне, следующие:
{"data: {"type": 1, "value": 1, "dev_id": 5, "attr_id": 0}, "ack": "ok", "action": "upload", "mac": "C8EEA63070CF"}
Моя функция webhook:
class webHookController extends Controller
{
public function webhook(Request $request)
{
$options = array(
'cluster' => 'ap2',
'useTLS' => true
);
$pusher = new \Pusher\Pusher(
'cant',
'show',
'these',
$options
);
$pusher->trigger("n-channel", 'n-event',$request['data']);
$thinker = t::where('thinker_MAC',$request['mac'])->first();
$slave = sd::where('connected_thinker_MAC',$request['mac'])->get();
if(count($slave) > 0 && $thinker->user_id != NULL)
{
$pusher->trigger($u->id."-channel", 'n-event',$request);
}
else
{
}
return "hooked";
}
}
Мой маршрут в api.php:
Route::post('/webhook','webHookController@webhook');
Доказательство того, что подписка работает:
![webhooks.site responses](https://i.stack.imgur.com/uPqMj.png)
Я также добавил маршрут игнорирования токенов csrf.
protected $except = [
'/webhook',
];
Я могу запустить свою функцию, если использую почтальон. Любая помощь будет принята с благодарностью.