Пытаюсь использовать облачные задачи Google от работников Cloudflare. Это среда JS, ограниченная стандартами веб-работников, за исключением некоторых вещей, которые Cloudflare не реализовал. Итог - я не могу использовать SDK, предоставленные Google в этой среде. Я пытаюсь вызвать API, используя простую выборку, но всегда терпит неудачу в части аутентификации.
В документе обнаружения говорится, что
"parameters": {
...
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
}
}
Поэтому я попытался вызвать api с параметром запроса ?key=MY_API_KEY
. Не сработало.
Я также попытался создать токен с помощью загруженного json-файла учетной записи службы с этой библиотекой. Не сработало.
Я пробовал следовать этому руководству для генерации токена доступа oauth, о чем мне говорилось в сообщении об ошибке. Но
- выполнение команды
gcloud auth application-default print-access-token
вернуло ошибку:
Переменная env, указанная выше, правильно установлена для json-файла служебной учетной записи.WARNING: Compute Engine Metadata server unavailable onattempt 1 of 3. Reason: timed out WARNING: Compute Engine Metadata server unavailable onattempt 2 of 3. Reason: timed out WARNING: Compute Engine Metadata server unavailable onattempt 3 of 3. Reason: [Errno 64] Host is down WARNING: Authentication failed using Compute Engine authentication due to unavailable metadata server. ERROR: (gcloud.auth.application-default.print-access-token) Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started
- Даже если это сработало, я не понимал, как мне его использовать из моего кода, хотя он использует инструмент cli
gcloud
Итак, мой вопрос: как я могу получить доступ к облачным API Google от рабочих Cloudflare (env javascript web-worker), в частности, меня интересуют Cloudtasks, без использования какого-либо инструмента CLI или Google SDK. Более конкретно - как я могу сгенерировать требуемый токен доступа oauth2?