Мне нужно создать webhook в Podio для моего приложения.
Мой код выглядит следующим образом:
// Authenticate the application
\Podio::setup(ID_PODIO, SECRET_PODIO);
\Podio::authenticate('app', array(
'app_id' => PODIO_ID_ADD,
'app_token' =>
PODIO_TOKEN_ADD
));
switch($_POST['type']) {
case 'hook.verify':
// Validate the webhook
\PodioHook::validate($_POST['hook_id'], array(
'code' =>
$_POST['code']
));
case 'item.create':
// Do something. item_id is available in $_POST['item_id']
case 'item.update':
// Do something. item_id is available in $_POST['item_id']
case 'item.delete':
// Do something. item_id is available in $_POST['item_id']
}
Podio не отправляет запрос на мой скрипт. Мой сервер не является localhost. Где я ошибся?
Все подробности о том, как настроить Podio webhooks здесь: https://developers.podio.com/examples/webhooks
Если вы не получаете проверочный звонок через webhook, проверьте URL-адрес webhook и настройки брандмауэра сервера. В целях отладки я бы порекомендовал:
Вы подтвердили $_POST['type']
? Я бы создал протоколирование, чтобы определить, действительно ли входящий запрос попадает на ваш сервер, например проверка данных перед отправкой запросов.
if (isset($request['type']) && $request['type'] == 'hook.verify') {
\PodioHook::validate($request['hook_id'], ['code' => $request['code']]);
$log->message = "Podio hook validation";
$log->status = "Complete";
$log->request = json_encode($request);
$log->save();
return;
}
1) подтверждаете ли вы, что запрос поступает на ваш сервер или нет?
2) действительно ли вы успешно запрашиваете проверку хуков, и если да, то как?
3) ваша аутентификация действительно работает?
2 перерыва для меня больше всего. Я буду регулярно находить, что проверка хука не будет работать при создании этой части с нуля.