В настоящее время я реализую функцию вставки из google-calendar-api ( ссылка на API ), но после успешного создания события оно никогда не отображается в не-gmail-аккаунтах (например,. .. @ icloud.com). Это также верно при тестировании с помощью API-интерфейса. Это только тихо появляется в gmail-аккаунтах.
Я установил sendNotifications
на true
и sendUpdates
на all
. Приглашение не отправлено, и да, я проверил каталог спама. Я сижу над этой проблемой уже несколько дней, и меня просто поражает, что это не работает. Служба в настоящее время непригодна для использования , так как я не могу добавлять участников с не-gmail-адресами.
Я следил за документацией, пробовал api-explorer, а также тестировал node.js -библиотека, а также обычные http-запросы.
Как уже говорилось, приглашение / не-gmail-аккаунты даже не будет работать с API-интерфейсом. Как можно исправить эту ошибку?
Редактировать 1: функция в Typescript, которая вызывает соответствующий API. oAuth2Client
правильно инициализируется. googleapis
- это версия 48.0.0
. Время начала и окончания являются правильно отформатированными строками, поскольку событие создается успешно, но без уведомления.
export async function createGoogleCalendarEntry(
uid: string,
props: CreateGoogleCalendarEntryProps,
context: CallableContext
): Promise<CreateCalendarEntryRes<CreateGoogleCalendarEntryRes>> {
const { title, start, end, attendees, desc } = props;
const oAuth2Client = await getAuthnAuthzGcpOAuth2ClientFromCallableContext(uid, context, c => c.gcp!);
return google
.calendar({ version: "v3", auth: oAuth2Client })
.events.insert({
calendarId: "primary",
sendUpdates: "all",
sendNotifications: true,
requestBody: {
summary: title,
description: desc,
start: { dateTime: start },
end: { dateTime: end },
attendees: attendees.map(a => ({ email: a.mail }))
}
})
.then(res => ({
provider: "google",
externalCalId: res.data.id!,
meta: res.data as CreateGoogleCalendarEntryRes
}));
}