在Podio中验证Webhooks

时间:2017-10-31 13:29:16

标签: php api webhooks podio

我需要在Podio中为我的应用程序创建一个webhook。

我的代码如下:

// 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。我在哪里弄错了?

2 个答案:

答案 0 :(得分:0)

有关如何设置Podio webhooks的所有详细信息,请访问:https://developers.podio.com/examples/webhooks

如果您没有收到webhook验证电话 - 请检查您的webhook网址和服务器防火墙设置。出于调试目的,我建议:

  1. 创建另一个webhook
  2. 使用https://requestb.in之类的服务作为该webhook的网址
  3. 创建webhook后点击“验证”按钮
  4. 检查已使用的服务以查看是否已发送webhook验证请求以及此请求的结构是什么

答案 1 :(得分:0)

您是否已验证$_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对我来说最不利。.我会经常发现从头开始构建该部分时,钩子验证不起作用。