首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PHP在NextCloud中创建日历事件

使用PHP在NextCloud中创建日历事件
EN

Stack Overflow用户
提问于 2018-06-05 05:54:20
回答 1查看 1.3K关注 0票数 1

我正在尝试用PHP和cURL在Nextcloud中创建一个日历事件。从命令行运行代码后,我从Nextcloud 12得到以下错误:

代码语言:javascript
复制
PUT is not allowed on non-files.

下面是我使用的完整代码,如下所示的this guide

代码语言:javascript
复制
<?php
$url = 'https://cloud.org/remote.php/dav/calendars/mycalendars/activity/';
$headers = array('Content-Type: text/calendar', 'charset=utf-8');
$userpwd = 'gerald:123';
$description = 'new event description';
$summary = 'new event';
$tstart = gmdate("Ymd\THis\Z", strtotime("-2 days"));
$tend = gmdate("Ymd\THis\Z", strtotime("-2 days"));
$tstamp = gmdate("Ymd\THis\Z");
$uid = 'event-123';

$body = <<<__EOD
BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
DTSTAMP:$tstamp
DTSTART:$tstart
DTEND:$tend
UID:$uid
DESCRIPTION:$description
LOCATION:Office
SUMMARY:$summary
END:VEVENT
END:VCALENDAR
__EOD;

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $userpwd);
//curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

//Execute the request.
$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>

这是否意味着Nextcloud中的CalDAV不支持PUT?那么像Thunderbird Lightning这样的日历应用程序如何在Nextcloud中创建事件呢?

在Nextcloud WebDAV documentation中,我找不到任何关于CalDAV实现的东西。

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

https://stackoverflow.com/questions/50689292

复制
相关文章

相似问题

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