#javascript #reactjs #google-calendar-api
Вопрос:
Я знаю, что этот вопрос не совсем связан с существующим кодом, но я хочу иметь возможность интегрировать API календаря Google в свой проект React. Мне интересно, возможно ли интегрировать этот календарь Google без бэкенда непосредственно в приложение React? Например, я хочу, чтобы люди могли бронировать встречи на веб-сайте. Когда они заказывают встречу, я хочу видеть ее в своем календаре в аккаунте Google. Возможно ли это, или они должны войти в свои учетные записи и забронировать его в моем календаре или как он работает? Я нашел документацию Google об этом:
https://developers.google.com/calendar/quickstart/js
Но я не уверен, возможно ли то, чего я хочу. Я также зарегистрировал свой API-ключ и получил свой идентификатор клиента:
const CALENDAR_ID ="XXXXXXXXXXXXXXXX.apps.googleusercontent.com";
const API_KEY = "XXXXXXXXXXXXXXXXX";
let url = `https://www.googleapis.com/calendar/v3/calendars/${CALENDAR_ID}/events?key=${API_KEY}`;
Но когда я пытаюсь позвонить ПОЧТАЛЬОНУ, я получаю:
{
"error": {
"code": 401,
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"errors": [
{
"message": "Login Required.",
"domain": "global",
"reason": "required",
"location": "Authorization",
"locationType": "header"
}
],
"status": "UNAUTHENTICATED"
}
}
Так что, может быть, я делаю это неправильно. Итак, кто-нибудь сделал что-то подобное и может мне помочь? Я был бы вам очень признателен, спасибо!
Комментарии:
1. Вероятно, вы не отправляете учетные данные в запросе. Самый простой способ исправить это-использовать функцию авторизации, найденную здесь developers.google.com/calendar/quickstart/js .
Ответ №1:
Ваш ключ API или идентификатор клиента позволят вашему приложению запросить согласие пользователя, чтобы получить маркер доступа и иметь возможность использовать запрошенный API. В вашем случае, поскольку вы хотите добавить людей (приглашенных) в свой календарь, на самом деле согласие следует запросить у вас.
Вы можете видеть, что единственный способ разрешить вашему приложению отправлять запросы в API календаря от вашего имени-это предоставить приложению доступ к вашим маркерам доступа или обновления, которые было бы небезопасно использовать во внешнем интерфейсе.