Использование учетной записи Google Calendar V3 в ZF2

0

Я осознаю тот факт, что я не первый, задающий вопрос, но я искал пару дней, и я не могу найти решение моей проблемы. Итак, Thing мне нужно настроить мое приложение с учетной записью Google, и всякий раз, когда пользователь завершает действие, приложение добавляет событие в приложение Google Calendar, не беспокоя пользователя за любое согласие. Мне нужна вся аутентификация для учетной записи приложения, которая должна быть выполнена в коде. Я проделал некоторые поиски, и я думаю, что связь Google Server с сервером через служебную учетную запись - путь. https://developers.google.com/accounts/docs/OAuth2ServiceAccount

Дело в том, что я понятия не имею, как настроить клиента, получить токен доступа и вызвать API с ним. До сих пор я установил Google API с помощью композитора:

{
   "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.3.*",
        "dlu/dlutwbootstrap": "dev-master",
        "google/apiclient": "1.0.*@beta"
    }
}

И я также создал учетную запись службы из консоли разработчика Google, а также получил идентификатор клиента, адрес электронной почты и т.д. Таким образом, это приводит нас к коду:

$client = new \Google_Client();

    $clientId = '<MY ID>';
    $service_email = '<THE EMAIL>';
    $myMail = '<MY OTHER MAIL>';
    $keyFile = './data/<NAME OF FILE>';

    $client->setClientId($clientId);
    $client->setApplicationName('Timesheet');

    $key = file_get_contents($keyFile);

    $client->setAssertionCredentials(new Google_AssertionCredentials(
        $service_email,
        array('https://www.googleapis.com/auth/calendar'),
        $key));
    $client->getRequestToken();

    $calendar = new \Google_Service_Calendar($client);

    $event = new Event();
    $event->setSummary('Appointment');
    $event->setLocation('Somewhere');
    $start = new EventDateTime();
    $start->setDateTime('2014-11-05T10:00:00.000-07:00');
    $event->setStart($start);
    $end = new EventDateTime();
    $end->setDateTime('2014-11-05T10:25:00.000-07:00');
    $event->setEnd($end);
    $attendee1 = new EventAttendee();
    $attendee1->setEmail('<EMAIL ONE>');
    $attendee2 = new EventAttendee();
    $attendee2->setEmail('<EMAIL TWO>');
    $attendees = array($attendee1, $attendee2);
    $event->attendees = $attendees;
    $createdEvent = $calendar->events->insert('<CALENDAR TO INSERT EVENT INTO>', $event);

Я был бы очень признателен, если бы кто-нибудь мог указать, чего я пропустил, и направить меня на использование API. Заранее спасибо!

С наилучшими пожеланиями,

Valentin

Теги:
google-calendar
google-api-php-client
zend-framework2

1 ответ

0
Лучший ответ

Наконец-то ответ был найден! Ошибка заключалась в вызове вставки:

$calendar->events->insert('primary', $event); это правильный бит кода. Вам нужно поставить 'primary' в качестве первого параметра вместо электронного письма.

Надеюсь, это поможет кому-то! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню