Не могу получить обратный звонок от webhook laravel - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь создать веб-крючок для 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

Я также добавил маршрут игнорирования токенов csrf.

protected $except = [
    '/webhook',
];

Я могу запустить свою функцию, если использую почтальон. Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 08 апреля 2019

Вещи были реализованы отлично.Просто нужно было использовать ngrok для тестирования.Отвечать на людей, которые ищут ответ на ту же проблему.Кажется, здесь никто не знал ответа.

...