- У меня есть Google do c со скриптом ограниченных приложений.
- Скрипт использует идентификатор клиента / секрет (хранится в свойствах скрипта) для получения токена доступа для внешней службы API стороннего производителя.
- Чтобы получить этот идентификатор клиента / секрет, я сначала зарегистрировал сценарий как приложение с этим сервисом, во время которого вы также регистрируете URL обратного вызова (например, «https://script.google.com/macros/d/1gUrc_jUDhU31E3trfh0yyCaRfppoVsiEUKI5x-xxv15bQModm4fnnRtw/usercallback», где идентификатор scrpt равен '1gUrc_jUDhU31E3trfh0yyCaRfppoVsiEUKI5x-xxv15bQModm4fnnRtw').
Пока все хорошо, приложение работает и получает данные из API так, как задумано. Проблема, однако, заключается в том, что когда пользователь копирует Google do c, также изменяется идентификатор ограниченного сценария, который затем прерывает поток OAuth для этого пользователя, поскольку новый идентификатор сценария не соответствует URL-адресу обратного вызова, который API имеет в записи. Поэтому мне интересно, сталкивался ли кто-то еще с этим и как вы его решили.
Я попытался явно задать URI перенаправления для идентификатора исходного идентификатора сценария, одновременно создавая новый маркер состояния, но это приводит к ошибка:
The state token is invalid or has expired. Please try again.