首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel如何使用Cronofy API更新日历事件

Laravel如何使用Cronofy API更新日历事件
EN

Stack Overflow用户
提问于 2021-02-04 18:18:37
回答 1查看 78关注 0票数 0

在我的laravel-application中,我希望通过使用Cronofy API和来自cronofy-php的包来包含我的google-calendar

现在,当我尝试更新一个事件时,该事件被复制,我真的不知道为什么:

下面是我的代码:

代码语言:javascript
复制
public function updateEvent(){

   $cronofy = new Cronofy\Cronofy([
      "client_id" => config('cronofy.client_id'),
      "client_secret" => config('cronofy.client_secret'),
      "access_token" => $access_token->value,
      "refresh_token" => $refresh_token->value
   ]);


   $new_start_date = date("Y-m-d\TH:m:s\Z", strtotime(request()->event['changes']['start']['_date']));
   $new_end_date = date("Y-m-d\TH:m:s\Z", strtotime(request()->event['changes']['end']['_date']));

    $params = [
       'calendar_id' => (string)request()->event['schedule']['calendarId'],
       'event_id' => (string)request()->event['schedule']['id'],
       'summary' => request()->event['schedule']['title'],
       'description' => request()->event['schedule']['body'],
       'start' =>  (object)['time' => $new_start_date, 'tzid' => 'Etc/UTC'],
       'end' => (object)['time' => $new_end_date, 'tzid' => 'Etc/UTC'],
   ];

   $updated_event = $cronofy->upsertEvent($params);

   return response(['success' => true, 'event' => $params]);

}

如上所述,这将创建事件的副本,我有意希望对其进行更新/编辑。

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2021-02-04 18:34:19

所以在我看来,你正在创建一个新的Cronofy对象,然后插入它,这将导致它被插入。要仅编辑现有日历事件,应使用编辑现有对象

因此,不是:

代码语言:javascript
复制
public function updateEvent(){

$cronofy = new Cronofy\Cronofy([
      "client_id" => config('cronofy.client_id'),
      "client_secret" => config('cronofy.client_secret'),
      "access_token" => $access_token->value,
      "refresh_token" => $refresh_token->value
   ]);
...

它应该是这样的

代码语言:javascript
复制
public function updateEvent($id){

$cronofy = Cronofy\Cronofy::find($id);

$new_start_date = date("Y-m-d\TH:m:s\Z", strtotime(request()->event['changes']['start']['_date']));
$new_end_date = date("Y-m-d\TH:m:s\Z", strtotime(request()->event['changes']['end']['_date']));

$params = [
   'calendar_id' => (string)request()->event['schedule']['calendarId'],
   'event_id' => (string)request()->event['schedule']['id'],
   'summary' => request()->event['schedule']['title'],
   'description' => request()->event['schedule']['body'],
   'start' =>  (object)['time' => $new_start_date, 'tzid' => 'Etc/UTC'],
   'end' => (object)['time' => $new_end_date, 'tzid' => 'Etc/UTC'],
];

$updated_event = $cronofy->upsertEvent($params);
...

我希望我能帮上忙

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

https://stackoverflow.com/questions/66043599

复制
相关文章

相似问题

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