在开发者控制台中创建服务帐户,并在Google日历中添加具有管理员权限的服务帐户电子邮件ID。
这里的问题是事件邀请和提醒不会通过服务帐户自动触发,但是使用客户端ID和密钥可以发送邀请和提醒的电子邮件。
使用oauth2.0会提示用户登录并允许访问,但是这里需要访问自己的Google日历,因此使用服务帐户创建事件,但邀请和提醒不会发送。
参考:Google Event Insert V3 using oauth2.0 and service accounts
有任何解决方法或解决了该问题,请帮助我们。预先感谢。
下面是事件创建对象。
$event = new Google_Service_Calendar_Event(
array(
'summary' => $title,
'start' => array(
'dateTime' => $data['start_date_time'],
),
'end' => array(
'dateTime' => $data['end_date_time'],
),
'attendees' => array(
array(
'email' => $data['student_email'],
'displayName' => $data['student_name'],
'responseStatus' => "needsAction"
),
array(
'email' => $data['mentor_email'],
'displayName' => $data['mentor_name'],
'responseStatus' => "needsAction"
),
),
'guestsCanInviteOthers' => false,
'guestsCanSeeOtherGuests' => false,
'sendUpdates' => "all",
)
$service = new Google_Service_Calendar($this->client);
$event = $service->events->insert($this->calendar_id, $event);
答案 0 :(得分:0)
参考:Google Event Insert V3 using oauth2.0 and service accounts
有请求的请求主体和请求参数。 sendUpdates 是请求正文中使用的请求参数,因此通知和邀请均不会发送。
使用以下代码:如果有事件,请从事件请求主体中删除属性sendUpdates。
$service = new Google_Service_Calendar($this->client);
$event = $service->events->insert($this->calendar_id, $event, array('sendUpdates' => 'all'));
请求正文与上面相同。
谢谢。