【问题标题】:How can I create an event in google calendar and not have it on trash?如何在谷歌日历中创建活动而不将其放入垃圾箱?
【发布时间】:2019-10-08 17:47:21
【问题描述】:

如何在 Google 日历中创建活动而不将其放入垃圾箱? 我正在研究 Google Calendar API (https://developers.google.com/calendar/v3/reference/events/insert) 如何在日历上创建事件,插入工作正常,API 返回状态:“已确认”。 但在日历中,该事件并未出现。 我查看了 Google Calendar API,状态为“已取消”,因此我的活动出现在垃圾箱中。 我不确定发生了什么,有人知道如何在 google 日历上创建一个不会进入垃圾箱的活动吗?

<?php
class Calendar
{
    private $calendarId         = 'primary';
    private $service            = null;
    private $client             = null;

    public function __construct()
    {
        $this->client = new Client([
            'scopes' => [
                Google_Service_Calendar::CALENDAR,
                Google_Service_Calendar::CALENDAR_READONLY,
                Google_Service_Calendar::CALENDAR_EVENTS,
                Google_Service_Calendar::CALENDAR_EVENTS_READONLY,
            ]
        ]);
        $this->service = new Google_Service_Calendar($this->client->getClient());
    }

    public function eventAdd()
    {
        $email = 'seuemail@gmail.com';

        $event = new Google_Service_Calendar_Event();
        $event->setSummary('Vamos ver agora ;)');
        $event->setStatus('confirmed');
        $start_datetime = new Google_Service_Calendar_EventDateTime();
        $start_datetime->setDateTime('2019-10-10T15:00:00.000-03:00');
        $start_datetime->setTimeZone('America/Sao_Paulo');
        $event->setStart($start_datetime);
        $end_datetime = new Google_Service_Calendar_EventDateTime();
        $end_datetime->setDateTime('2019-10-10T20:00:00.000-03:00');
        $end_datetime->setTimeZone('America/Sao_Paulo');
        $event->setEnd($end_datetime);
        $reminder = new Google_Service_Calendar_EventReminder();
        $reminder->setMethod('popup');
        $reminder->setMinutes(10);
        $reminders = new Google_Service_Calendar_EventReminders();
        $reminders->setUseDefault(false);
        $reminders->setOverrides(array($reminder));
        $event->setReminders($reminders);

        $attendee1 = new Google_Service_Calendar_EventAttendee();
        $attendee1->setEmail($email);
        $attendee1->setResponseStatus('accepted');
        $attendees = array($attendee1);
        $event->attendees = $attendees;
        $optParams = array('sendNotifications' => true, 'maxAttendees' => 1);
        $event = $this->service->events->insert($this->calendarId, $event, $optParams);

        var_dump($event);
    }
}

【问题讨论】:

    标签: php laravel google-api composer-php google-calendar-api


    【解决方案1】:

    Issue Tracker 中有an open issue 解决此问题。

    作为一种解决方法,您可以使用您的实际日历 ID,而不仅仅是“主要”。这个小改动应该可以解决您的问题。

    我希望这会有所帮助!

    【讨论】:

    • 这里是发送垃圾的同一件事,并且没有出现在日历网格中,所以我只需要箭头网格而不是垃圾,正如你之前所说的“主要”并且已经使用了两种类型“主要” "和另一封电子邮件@。 .... iam.gserviceaccount.com 并给了同样的东西。我会继续看看我是否能解决问题
    猜你喜欢
    • 1970-01-01
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多