Я пытаюсь получить Google Calendar API, работающий в веб-приложении PHP, но мне трудно получить аутентификацию.
Я хочу, чтобы пользователи могли взаимодействовать с календарями одной учетной записи, известной серверу.
Каждый тип сценария, описанный в документах OAuth 2.0, говорит о «согласии пользователя», в котором используется форма входа и отдельный пользователь, но я хочу, чтобы сам сервер аутентифицировался напрямую и получил токен доступа для себя.
Есть ли какая-то часть OAuth или какой-то альтернативный механизм, который я могу использовать для этого?
Чтобы сделать это, вы должны пройти шаги для получения согласия пользователя, а затем скопировать маркеры доступа, которые он дает вам в PHP-код.
Обычная процедура для OAuth такова:
Но когда вы делаете это с одним календарем, как это, вы изменяете шаг 4. Вместо этого вы выгружаете токен на экран и копируете его в свой PHP-файл в качестве переменных вместо того, чтобы помещать его в базу данных. Затем, когда вы отправляете токен доступа на сервер, вы просто передаете известный статический токен, а не динамический токен из базы данных / сеанса.
См. Ответ mathewh здесь:
Как автоматизировать вход в Google API, чтобы получить токен OAuth 2.0 для доступа к известной учетной записи пользователя
Lightbulb для меня – когда вы получаете токен доступа, вы также получаете refresh_token … вы используете этот токен, чтобы «обновить» ваш токен доступа, как только он истечет.
В первый раз не может быть установлен шаг авторизации вручную.