Как разрешить боту discord доступ к продуктам Google?

#python #api #google-sheets #discord.py

Вопрос:

Я создал бота discord, которому требуется доступ к моим таблицам Google и календарю Google. Для этого я создал проект на консоли Google и включил диск, листы и другие необходимые API. Затем я загрузил учетные данные и переименовал их в creds.json .

Вот что я сделал, чтобы получить доступ к электронной таблице с именем Responses из моей учетной записи Google.

 scope = ['https://spreadsheets.google.com/feeds',
         'https://www.googleapis.com/auth/drive']

creds = ServiceAccountCredentials.from_json_keyfile_name('creds.json', scope)
client = gspread.authorize(creds)

sheet = client.open('Responses')
 

Все это было сделано в моей локальной системе. Но теперь я хочу, чтобы любой желающий мог пригласить этого бота и разрешить ему доступ к своим продуктам Google, таким как Таблицы, Календарь и т.д., Чтобы бот мог выполнять свою работу. Как я могу автоматизировать этот процесс включения API и использования учетных данных приглашающего? Или есть какой-то другой подход?

Буду признателен за любую помощь. Спасибо.

Ответ №1:

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

Комментарии:

1. Спасибо за ответ. Я думаю, что вы правильно поняли сценарий. «Вы должны иметь в виду, что эти пользователи будут запускать код, но в конце концов скрипт будет взаимодействовать с рабочей областью, как если бы это была ваша собственная учетная запись» именно так. Но как я могу попросить пользователя войти в систему из своей учетной записи Google, когда он приглашает моего бота на свой сервер? После этого бот может использовать свой сервис Google, например календарь, для создания каналов и т. Д. И да, я буду иметь это в виду «Поэтому я рекомендую вам следить за любыми манипуляциями с конфиденциальными данными и при необходимости создавать специальные учетные данные».

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

3. Большое вам спасибо за ссылки и ваше время.