#google-api #google-api-client
#google-api #google-api-client
Вопрос:
Для тестирования нашего приложения мне нужно вставить / обновить события календаря Google и проверить крайние случаи, например, если приглашение на собрание составляет> 30 дней, оно не должно показываться конечному пользователю. Я выполняю эту настройку для одного идентификатора gmail testaccount@.com и пытается манипулировать событиями, чтобы охватить все крайние случаи.
Перейдя по этой ссылке — https://developers.google.com/calendar/v3/reference/events/insert
1) Я создал новый проект https://console.cloud.google.com .
2) Включен API календаря Google
3) Настройте клиент OAuth для credentials.json
4) Запустил python quick start, чтобы получить событие календаря 10 — для проверки правильности шага 3.
5) Теперь для вставки события добавлена следующая область на экране согласия https://www.googleapis.com/auth/calendar
https://www.googleapis.com/auth/calendar.events
6) Восстановите учетные данные, чтобы у них была новая добавленная область для вставки события.
При запросе я получаю следующее сообщение об ошибке — HTTPError 403 https://www.googleapis.com/calendar/v3/calendars/primary/events?alt=json возвращено «Недостаточное разрешение: запрос имел недостаточные области проверки подлинности».
Я также пытался использовать идентификатор электронной почты вместо «primay» и снова получал ту же ошибку.
Ответ №1:
У меня была та же проблема (= сообщение об ошибке). Проверьте в верхней части демонстрационного программного обеспечения следующие строки:
# If modifying these scopes, delete the file token.pickle.
SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']
и измените на
# If modifying these scopes, delete the file token.pickle.
SCOPES = ['https://www.googleapis.com/auth/calendar']
затем удалите свой токен.выберите файл,
затем повторно запустите свой скрипт.
Комментарии:
1. Для среды Windows удалите файл token.json
2. но что делать, если вам нужен calendar.readonly только для просмотра событий и вы не хотите пугать пользователя, предоставляя вам разрешение на запись / удаление, когда оно не понадобится? Как вы можете заставить .readonly работать, не обращаясь к этой ошибке?
Ответ №2:
Если все ваши учетные данные выполнены идеально. вы можете просто отредактировать строку, перейти к своему index.php или ваше имя файла, в котором вы сгенерировали get client и переопределите строку ниже
$client->setScopes(Google_Service_Calendar::CALENDAR_READONLY);
Для
$client->setScopes(Google_Service_Calendar::CALENDAR);
а также убедитесь, что у вас есть разрешение на создание событий.
Надеюсь, это поможет.
Ответ №3:
$client->setScopes(Google_Service_Calendar::CALENDAR_READONLY);
Измените это на:
$client->setScopes(Google_Service_Calendar::CALENDAR_EVENTS);