Дано
Я разрабатываю два разных приложения, использующих одни и те же учетные данные для доступа к API AdWords. Приложение-бот предназначено только для сбора/анализа данных из API.
Приложениям № 1 и № 2 требуется примерно 1 час, чтобы завершить процесс получения/анализа данных из API.
Я использую:
- мой собственный аккаунт AdWords,
- метод аутентификации ClientLogin,
- рубиновый язык.
Проблема
Иногда оба таймфрейма (для приложений № 1 и № 2) могут перекрываться, и я начинаю получать массу этих ошибок:
AdwordsApi::Errors::ReportXmlError: HTTP code: 400, error type: 'AuthorizationError.USER_PERMISSION_DENIED'
Следующая последовательность событий приводит к проблеме:
- Приложение № 1 запрашивает токен аутентификации у Google и кэширует его после получения.
- Приложение № 1 запускает процесс приема данных с использованием токена,
- Приложение № 2 запрашивает токен аутентификации у Google и кэширует его после получения.
- Приложение № 2 запускает процесс приема данных с использованием токена,
- Приложение № 1 запрашивает еще одну порцию данных из API AdWords, но из-за пункта 3 токен авторизации для Приложения 1 стал недействительным, и приложение начинает задыхаться из-за вышеуказанной ошибки.
Итак, возникает вопрос: есть ли способ сделать такую настройку, чтобы оба приложения могли одновременно обращаться к API AdWords без вмешательства/аннулирования токена?