Можно ли делать авторизованные звонки в Google Drive API, используя подписанный JWT? - PullRequest
0 голосов
/ 21 февраля 2020

Следующее можно прочитать на developers.google.com :

С некоторыми API Google вы можете совершать авторизованные вызовы API, используя подписанный JWT непосредственно в качестве токена на предъявителя , а не токен доступа OAuth 2.0. Когда это возможно, вы можете избежать отправки сетевого запроса на сервер авторизации Google перед выполнением вызова API.

Если API, который вы хотите вызвать, имеет определение службы, опубликованное в репозитории GitHub API Google, вы могу делать авторизованные вызовы API, используя JWT вместо токена доступа

Мой вопрос: возможно ли делать авторизованные вызовы в Google Drive API с использованием подписанного JWT? Я искал на Google API Github репо , но ничего не нашел. Если да, может ли кто-нибудь дать мне ссылку на страницу, которая покажет, как это сделать (желательно в Python).

1 Ответ

2 голосов
/ 22 февраля 2020
  • Вы хотите использовать Drive API, используя служебную учетную запись.
  • Вы хотите добиться этого, используя python.

Если мое понимание верно, как насчет этот ответ? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

В вашей ситуации, как насчет использования google-api- python -клиента ?

Использование:

1. Создайте учетную запись службы:

В этом случае создайте учетную запись службы и загрузите файл JSON. Ссылка

2. Установите "google-api- python -client"

Чтобы использовать следующий пример скрипта, установите "google-api- python -client".

$ pip install google-api-python-client

3. Пример сценария:

Перед запуском сценария установите переменную SERVICE_ACCOUNT_FILE.

from google.oauth2 import service_account
from googleapiclient.discovery import build

SERVICE_ACCOUNT_FILE = '###'  # Please set the file including JSON values of the credentials of service account.

SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly']
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('drive', 'v3', credentials=credentials)
fileList = service.files().list().execute()
print(fileList)
  • . При запуске этого сценария список файлов на Google Диске сервисная учетная запись извлекается с использованием метода Files: list в Drive API.

Примечание:

  • Диск Google учетной записи службы отличается от вашего собственного Google Drive , Если вы хотите получить файл на своем Google Диске, используя учетную запись службы, необходимо предоставить доступ к файлу этой учетной записи. Пожалуйста, будьте осторожны.

Ссылки:

Если я неправильно понял ваш вопрос и это не то направление, которое вам нужно, я приношу свои извинения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...