Вызов API Google в облачной функции с аутентификациейPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Вызов API Google в облачной функции с аутентификацией

Сообщение Anonymous »

Я пытаюсь вызвать API Dataform из облачной функции, однако предоставляемый мной токен идентификации возвращается с сообщением «Запрос содержит неверные учетные данные для аутентификации». Ожидаемый токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные для аутентификации.'
Согласно документации, SA, запускающему облачную функцию, нуждается только в dataform.workflowInvocats.query
code>, которое я предоставил и подтвердил, что оно работает при использовании библиотеки Python Dataform (мне нужно вызвать конечную точку REST API по технической причине, которую библиотека Python не предоставляет).
Это мой код Я использую для выполнения запроса токен авторизации, который я получил здесь от самого Google, однако использую библиотеку запросов для вызова API.

Код: Выделить всё

import requests
import google.auth.transport.requests
import google.oauth2.id_token

def get_workflow_invocation_actions(environment, git_repo, workflow_invocation_id):
parent = f"projects/{environment}/locations/europe-west2/repositories/{git_repo}"
name = f"{parent}/workflowInvocations/{workflow_invocation_id}"

# The API endpoint
url = f"https://dataform.googleapis.com/v1beta1/{name}:query"

auth_req = google.auth.transport.requests.Request()
id_token = google.oauth2.id_token.fetch_id_token(auth_req, url)

# A GET request to the API
response = requests.get(url, headers={'Authorization': f'Bearer {id_token}'})

# Print the response
print(response.json())
Идентификатор id_token действительно заполняется действительным токеном, поэтому я не уверен, что мешает ему пройти аутентификацию через REST API.

Подробнее здесь: https://stackoverflow.com/questions/791 ... entication
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»