当前位置: 首页 > 知识库问答 >
问题:

将事件添加到Google日历

公良飞尘
2023-03-14

我们正在使用API Google开发应用程序。在这个过程中,我们遇到了一些困难。

我们使用了php-sdk,在这个页面上“code . Google . com/p/Google-API-PHP-client/”我们使用了谷歌日历服务。我们遵循位于以下位置的文档:“developers . Google . com/Google-apps/calendar/v3/reference/”日历和事件部分。

数据:-允许访问位于此处的Google日历服务"code.google.com/apis/console/"-请求所需的用户授权(基于此处的留档:"developers.google.com/google-apps/calendar/v3/reference/events/insert)"

任务:将事件添加到日历。操作:我们将Post请求发送到https://www . Google APIs . com/calendar/v3/calendars/{ calendar id }/events?calendarId={calendarId}

请求正文:

{

"\u0000*\u0000__creatorType":"EventCreator",

"\u0000*\u0000__creatorDataType":"",

"\u0000*\u0000__organizerType":"EventOrganizer",

"\u0000*\u0000__organizerDataType":"",

"\u0000*\u0000__attendeesType":"EventAttendee",

"\u0000*\u0000__attendeesDataType":"array",

"\u0000*\u0000__startType":"EventDateTime",

"\u0000*\u0000__startDataType":"",

"start":{

"date":"",

"timeZone":"Europe\/Moscow",

"dateTime":"2012-0408T12:00:00+04:00"

},

"location":"sdasdwqwqesaddsa",

"\u0000*\u0000__originalStartTimeType":"EventDateTime",

"\u0000*\u0000__originalStartTimeDataType":"",

"\u0000*\u0000__gadgetType":"EventGadget",

"\u0000*\u0000__gadgetDataType":"",

"description":"sadasdzxczxcasdsaweqqwasd",

"\u0000*\u0000__extendedPropertiesType":"EventExtendedProperties",

"\u0000*\u0000__extendedPropertiesDataType":"",

"\u0000*\u0000__endType":"EventDateTime",

"\u0000*\u0000__endDataType":"",

"end":{

"date":"",

"timeZone":"Europe\/Moscow",

"dateTime":"2012-04-08T19:00:00+04:00"

},

"\u0000*\u0000__remindersType":"EventReminders",

"\u0000*\u0000__remindersDataType":"",

"summary":"wqeqwesadasewqe"

}

注意:为了形成事件对象,我们使用了代码(与这里的示例相同,developers.google.com/google-apps/calendar/v3/reference/events/insert section Examples)

Result: API returns an error with code 400 (Bad Request)

来自 API 的答案(带标头)

HTTP/1.1 400 Bad Request Content-Type: application/json; charset=UTF-8 Date: Fri, 06 Apr 2012 05:53:55 GMT Expires: Fri, 06 Apr 2012 05:53:55 GMT Cache-Control: private, max-age=0 X-Content-Type-Options: nosniff X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block Server: GSE Transfer-Encoding: chunked 

{ "error": {

 "errors": [

 { "domain": "global",

 "reason": "badRequest",

 "message": "Bad Request" } 

],

 "code": 400, 

"message": "Bad Request"

 } 

}

共有2个答案

尉迟阳煦
2023-03-14

你提到的留档(http://developers.google.com/google-apps/calendar/v3/reference)记录了谷歌日历应用编程接口的REST接口。然而,PHP客户端库的工作方式不同,不幸的是几乎没有记录。

我使用了谷歌PHP API客户端附带的示例(https://code.google.com/p/google-api-php-client/source/browse/trunk/examples/calendar/simple.php)。您需要在 Google 的 API 控制台中生成 oAuth 客户端 ID、密钥等(其工作原理在 API 客户端的文档中进行了说明)。

有关日历PHP API的所有其他文档(AFAIK)只能在Google_CalendarService类的注释中找到:https://code.google.com/p/google-api-php-client/source/browse/trunk/src/contrib/Google_CalendarService.php

您可以使用以下代码向Google日历添加新事件:

$event = new Google_Event();

// Event title and location
$event->setSummary('Event title');
$event->setLocation('Some location');

// Start and end time of the event
$start = new Google_EventDateTime();
$start->setDateTime('2013-08-08T14:00:00+02:00');
$event->setStart($start);

$stop = new Google_EventDateTime();
$stop->setDateTime('2013-08-08T16:00:00+02:00');
$event->setEnd($stop);

// Insert event in calendar.
// 'primary' may be replaced with a full @group.calendar.google.com calendar ID.
$createdEvent = $cal->events->insert('primary', $event);
牛迪
2023-03-14

使用此工具四处游玩。我也有同样的问题。它在资源管理器中工作,但在我的rails服务器上不工作。

https://developers.google.com/google-apps/calendar/v3/reference/events/insert#try-it

 类似资料:
  • 问题内容: 我试图通过Javascript向表行添加onclick事件。 这在Firefox中可以正常工作,但是在Internet Explorer(IE8)中,我无法访问表格单元。我认为这与onclick函数中的“ this”被标识为“ Window”而不是“ Table”(或类似的东西)有关。 如果我可以访问当前行,则可以在onclick函数中执行,因为我找不到这样做的方法。有什么建议么? 问

  • 问题内容: 我想将点击事件添加到中。我使用了这个例子,并得到了: 但是不幸的是没有任何反应。当我用另一个元素(例如按钮)测试它时,它可以工作: 问题答案: 您可以将点击附加到iframe内容: 注意:这仅在两个页面位于同一域中时才有效。

  • 问题内容: 假设我有一些要将JavaScript操作添加到的链接: 当页面加载时,我给他们所有的click事件: 但让我们说之后,我添加了另一个元素,但我想给它相同的事件。我不能这样做: 因为前三个事件将包含两个事件。处理此问题的最佳方法是什么? 问题答案: 您可以将$ .on绑定到这样的dom中始终存在的父元素。 请注意: 您可以用dom中将始终存在的元素的任何父级替换,并且父级越近越好。 具有

  • 问题内容: 我在SVG教程中找到了此示例,该教程说明了如何将事件处理程序用于SVG元素。看起来像下面的代码: 但是,这似乎不起作用。当我单击该元素时,没有任何反应。 也许重要的是要提到我正在使用PHP从PHP脚本内部显示SVG的事实。另外,请注意,使用AJAX和将PHP脚本生成的内容带入页面。 这可能与它有关吗?非常感谢您的帮助。 问题答案: 似乎所有JavaScript都必须包含在SVG中才能运