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

如何从google日历API创建事件

漆雕和雅
2023-03-14

我正在开发一个用PHP和javascript编写的web应用程序。在这个应用程序中,我们将一些事件存储在自己的数据库中。

现在,我们要做的是,每当我们在应用程序中创建一个新事件时,它都应该在当前登录用户的谷歌日历的谷歌日历上创建一个重复的事件。

我们可以要求我们的用户从他们的谷歌控制台生成一个API密钥。

有没有办法创建一个谷歌日历事件通过使用一个API密钥,而没有任何其他配置。

谢谢

共有2个答案

潘鸿文
2023-03-14

有关如何设置环境,请参阅PHP快速入门:

https://developers.google.com/google-apps/calendar/quickstart/php

将作用域更改为Google_Service_Calendar::Calendar,并删除所有存储的

$event = new Google_Service_Calendar_Event(array(
  'summary' => 'Google I/O 2015',
  'location' => '800 Howard St., San Francisco, CA 94103',
  'description' => 'A chance to hear more about Google\'s developer products.',
  'start' => array(
    'dateTime' => '2015-05-28T09:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'end' => array(
    'dateTime' => '2015-05-28T17:00:00-07:00',
    'timeZone' => 'America/Los_Angeles',
  ),
  'recurrence' => array(
    'RRULE:FREQ=DAILY;COUNT=2'
  ),
  'attendees' => array(
    array('email' => 'lpage@example.com'),
    array('email' => 'sbrin@example.com'),
  ),
  'reminders' => array(
    'useDefault' => FALSE,
    'overrides' => array(
      array('method' => 'email', 'minutes' => 24 * 60),
      array('method' => 'popup', 'minutes' => 10),
    ),
  ),
));

$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);
printf('Event created: %s\n', $event->htmlLink);
訾安邦
2023-03-14

不幸的是,您的应用程序必须使用OAuth 2.0,而不是API密钥。根据本文件:

API密钥

  • 当API调用不涉及用户数据时,应使用API键。这意味着无论调用方是谁,为请求返回的数据都是相同的。谷歌地图API和谷歌翻译API等API使用API密钥。

谷歌认证

  • 当所有用户都有Google帐户时,Google身份验证是有利的。您可以选择使用Google身份验证,例如,如果您的API伴随Google Apps(例如,Google Drive配套)。

由于您将访问用户的数据,因此需要实现OAuth 2.0身份验证。

附加参考:

  • OAuth(访问令牌)与API密钥
 类似资料:
  • 我从快速入门开始(https://developers.google.com/google-apps/calendar/quickstart/python)而且效果很好。然后我尝试用这个指南插入事件(https://developers.google.com/google-apps/calendar/create-events)。我将此代码添加到quickstart的代码中,但出现错误。如何查看我

  • 我正在扩展一个PHP应用程序,它允许管理员创建事件并为这些事件分配特定用户。但是,在用户被列为可分配之前,我会检查用户的日历,看看他们是否可用。 我已经使用EWS为Exchange构建了一次,并使用FindItem方法在给定的时间段内检索用户电子邮件地址的事件,但我在Google日历API中很难找到等效的事件。 Events和FreeBusy Call似乎都需要特定用户的calendarId,这对

  • 我正在通过Google calendar API v3创建一系列活动(学校时间表)。我正在通过通过API控制台获得的OAuth凭据验证我的程序。除了所有活动都有我的Google帐户作为其创建者,并且程序创建的所有日历都显示在我的“其他日历”列表中之外,所有活动都运行良好。有没有办法改变这种行为? 我唯一能想到的是使用服务号(例如timetable@mydomain.com)登录API控制台并从中创

  • 我是Google日历API和PHP的新手,我似乎不知道如何实现我想做的事情。基本上,我想从calendarID为的google日历中检索事件webapps098@gmail.com.我当前的代码是这样的 我收到错误: 异常Google_ServiceException消息错误调用GEThttps://www.googleapis.com/calendar/v3/calendars/webapps0

  • 我试图使用delphi REST控件将一个事件插入到我的google日历中。 这是迄今为止的代码: 我使用的范围是:https://www.googleapis.com/auth/calendar. 基本URL:https://www.googleapis.com/calendar/v3 资源URI:日历/主要/事件 我确实获得了访问令牌和刷新令牌,但无法发布请求。这是我收到的错误: 使用以下ur

  • 我使用OAuth对我的应用程序进行了身份验证,并使用日历API对其进行了测试。一切正常。我还为事件API使用了“快速添加”方法,效果很好。但是当我尝试使用以下代码插入时 我得到以下错误: 致命错误:未捕获异常“apiServiceException”,消息为“调用POST时出错 https://www.googleapis.com/calendar/v3/calendars/myemail@gma