Как я могу создать событие в календаре Google и не иметь его в корзине? - PullRequest
1 голос
/ 08 октября 2019

Как я могу создать событие в календаре Google и не иметь его в корзине? Я изучал API Календаря Google (https://developers.google.com/calendar/v3/reference/events/insert), как создать событие в календаре, вставка работает нормально, API возвращается со статусом «подтверждено». Но в календаре событие не появляется. Я посмотрел на API Календаря Google и там статус «отменен», поэтому мои события отображаются в корзине. Я не уверен в том, что происходит, кто-то знает, как создать в календаре Google событие, которое не попадает в корзину?

enter image description here

<?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);
    }
}

1 Ответ

0 голосов
/ 09 октября 2019

Существует открытый выпуск для этой проблемы в Issue Tracker.

В качестве обходного пути вы можете использовать свой действительный идентификатор календаря вместо просто «основной». Это небольшое изменение должно решить вашу проблему.

Надеюсь, это поможет!

...