Использование календаря Google в интерфейсе приложения React

#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 календаря от вашего имени-это предоставить приложению доступ к вашим маркерам доступа или обновления, которые было бы небезопасно использовать во внешнем интерфейсе.