首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从javascript捕获Calendly iframe重新调度事件

如何从javascript捕获Calendly iframe重新调度事件
EN

Stack Overflow用户
提问于 2021-09-08 11:19:46
回答 1查看 773关注 0票数 4

我正在做一个医疗预约申请,并使用日历预订。我能够成功地通过js事件将计划好的事件第一次保存到db中,但无法捕获重调度事件。

代码语言:javascript
复制
 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“事件捕获预定事件,但不能捕获重新调度事件数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-09 08:06:58

你好,这是一个非常恼人的问题,并没有提供这方面的官方解决方案。没有捕获重新调度事件的此类侦听器。

可能有两个方面的工作:

  1. 使用webhooks,当重新安排事件命中时触发取消并创建钩子.

  1. 为我工作的解决方案是,创建一个新事件并通过calendly删除上一个事件,您可以通过iframe取消一个事件,从而在网络选项卡中获得delete api。以下是在通过js调用和ajax请求侦听到控制器的创建事件之后,在laravel中实现的,如果您保存在db中,则从日历中删除之前的事件,并在db中删除以前的事件:

$scheduleDelete =ScheduledCall::其中(‘id’,$request->scheduleId)->first();$cancelUrl = $scheduleDelete->calendly_cancel_url;$cancelUrl = substr( $cancelUrl,strrpos($cancelUrl,'/') + 1);$cancelUrl= 'https://calendly.com/api/booking/cancellations/‘。$cancelUrl;$data =[‘=> 'cancel_reason’=>‘,'canceled_by’=> 'Nonsulin‘];$payload = json_encode($data);Helper::apiCurlRequest($cancelUrl,'PUT',config('app.CALENDLY_API_KEY'),$payload);$scheduleDelete->删除();

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69102073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档