используйте те же учетные данные. json для доступа к google drive / google sheet api в python - PullRequest
1 голос
/ 04 марта 2020

Я пишу интерфейс для доступа к Google API с помощью Google Drive и Google листов. Для каждого API я следую google api как google drive, чтобы создать учетные данные. json и без проблем использую следующий код. Но как интерфейс, как я могу просто использовать один учетные данные. json файл для доступа к нескольким API?

from googleapiclient.discovery import build
from oauth2client import client, tools
flow = client.flow_from_clientsecrets('~/credentials.json', ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive'])
creds = tools.run_flow(flow, store)
service = build('drive', 'v3', http=creds.authorize(Http()))

1 Ответ

0 голосов
/ 04 марта 2020

Пока в проекте на консоли разработчика Google включена поддержка различных API-адресов, вы можете использовать тот же файл, для которого вы хотите получить доступ к API-интерфейсу, просто для запроса доступа к каждому из них.

from googleapiclient.discovery import build
from oauth2client import client, tools
flow = client.flow_from_clientsecrets('~/credentials.json', 
              ['https://spreadsheets.google.com/feeds',
              'https://www.googleapis.com/auth/drive'])
creds = tools.run_flow(flow, store)
serviceDrive = build('drive', 'v3', credentials=creds)
serviceSheets = build('sheets', 'v4', credentials=creds)

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

sheet = serviceSheets.spreadsheets()
results = serviceDrive.files().list(pageSize=10, fields="nextPageToken, files(id, name)").execute()
...