活动邀请和通知不会通过服务帐户模式发送给Google日历中的邀请对象

时间:2019-01-16 15:00:07

标签: php google-calendar-api service-accounts

在开发者控制台中创建服务帐户,并在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);

1 个答案:

答案 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'));

请求正文与上面相同。

谢谢。