Интеграция Календаря Google с Google App Engine - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть служба Google App Engine, настроенная и запущенная для учетной записи Google A. Я хотел бы иметь возможность записывать события в учетную запись Google Calendar моей компании B. Я выполнил эту как общее руководство. Вот шаги, которые я сделал, чтобы сделать это (Примечание: AppEngine уже запущен и функционирует.

  1. Включен API календаря в моем проекте для учетной записи Google A
  2. Ушел в мой консоль администратора учетной записи B и перешел в «Безопасность» -> «Дополнительные настройки» -> «Управление доступом клиента API» и разрешил область действия https://www.googleapis.com/auth/calendar для идентификатора моей службы для моего App Engine в учетной записи A.
  3. Код ниже в Go

Примечание: в getCalendarService я получаю учетные данные, используя AD C после этого репо README

func getCalendarService() (*calendar.Service, error) {
    ctx := context.Background()
    return calendar.NewService(ctx, option.WithScopes(calendar.CalendarScope))
}

// code adapted from https://developers.google.com/calendar/create-events/
func bookEvent() {
    srv, err := getCalendarService()
    if err != nil {logAndPrintError(err)}
    event := &calendar.Event{
        Summary: "Test Title",
        Description: "Lorem ipsum",
        Start: &calendar.EventDateTime{
            DateTime: "2020-02-12T09:00:00-07:00",
            TimeZone: "America/Chicago",
        },
        End: &calendar.EventDateTime{
            DateTime: "2020-02-12T17:00:00-07:00",
            TimeZone: "America/Chicago",
        },
    }
    calendarId := "primary"
    event, err = srv.Events.Insert(calendarId, event).Do()
    if err != nil {
        logAndPrintError(err)
    }
    log.Printf("Event created: %s\n", event.HtmlLink)
}

Когда я просматриваю журнал и отчеты об ошибках, ошибок нет, и журналы показывают это сообщение:

Событие создано: URL-адрес календаря

, но когда я копирую ссылку и go в свою учетную запись Google B и загружаю ее, в Календаре Google появляется сообщение «Не удалось найти запрошенное событие». Стоит отметить, что если я загружу URL в учетную запись A, он говорит то же самое.

По какой-то причине t здесь нет ошибки, но событие не работает. Я не думаю, что это проблема в моем коде, но проблема в учетных данных, но я могу ошибаться.


Примечание: Я не загружаю никаких ключей, Я использую AD C с App Engine, чтобы получить свои учетные данные.

1 Ответ

1 голос
/ 13 февраля 2020

Если я не ошибаюсь,

вы создаете событие календаря с учетной записью службы и вставляете это событие в основной календарь СЧЕТА ОБСЛУЖИВАНИЯ

Это вероятно, не то, что вы хотели, вместо этого, если вы хотите вставить событие в основной календарь либо

  • Вам нужно указать идентификатор этого календаря как calendarId вместо основного - это означает, что ваш заранее поделитесь своим календарем с учетной записью службы
  • Или вы используете олицетворение , то есть создайте службу учетной записи службы таким образом, чтобы она действовала как вы (или другой пользователь вашего домена). указано как ServiceAccountUser
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...