gpt4 book ai didi

javascript - 如何从 javascript 中捕获 Calendly iframe 重新安排事件

转载 作者:行者123 更新时间:2023-12-05 00:39:17 35 4
gpt4 key购买 nike

我正在制作医疗预约预约申请并使用 calendly 进行预约。我能够第一次通过 js 事件成功地将预定事件保存到数据库中,但无法捕获重新安排事件。

 function isCalendlyEvent(e) {
return e.data.event && e.data.event.indexOf('calendly') === 0;
};
window.addEventListener(
'message',
function(e) {
if (isCalendlyEvent(e)) {
console.log(e.data);
}
}
);
我能够通过“calendly.event_scheduled”事件捕获预定事件,但无法捕获重新安排事件数据。

最佳答案

您好,这是一个非常烦人的日历问题,并且没有为此提供官方解决方案。没有这样的监听器可以捕获重新安排事件。
可能有两种解决方法:

  • 使用 webhook,当重新安排事件发生时,它会触发取消和创建的钩子(Hook)。
  • 对我有用的解决方案是,创建一个新事件并通过 calendly api 删除前一个事件,您可以通过 iframe 取消事件来获取网络选项卡中的删除 api。以下是我在通过 js 调用和 ajax 请求向您的 Controller 监听创建事件后在 laravel 中的实现,如果您保存在您的数据库中,则从 calendly 和您的数据库中删除前一个事件:
             $scheduleDelete = ScheduledCall::where('id', $request->scheduleId)->first();
    $cancelUrl = $scheduleDelete->calendly_cancel_url;
    $cancelUrl = substr($cancelUrl, strrpos($cancelUrl, '/') + 1);
    $cancelUrl = 'https://calendly.com/api/booking/cancellations/' . $cancelUrl;
    $data = [
    'cancellation' => [
    'cancel_reason' => '',
    'canceled_by' => 'Nonsulin'
    ]
    ];
    $payload = json_encode($data);
    Helper::apiCurlRequest($cancelUrl, 'PUT', config('app.CALENDLY_API_KEY'), $payload);
    $scheduleDelete->delete();
  • 关于javascript - 如何从 javascript 中捕获 Calendly iframe 重新安排事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69102073/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com