Тема: Допомога новачкам. Звʼязка сервісів гугл(таблиці та диск) з ботом

Всім привіт, намагаюсь вивчати самотушки мову програмування python. І маю ідею створити цікавий та корисний тг бот, проте ніяк не можу розібратись з тим Google Developers та як додати до нього API Google Sheets API та Google Drive API, та згодом це все прописати так щоб все працювало, можливо саме тут я зможу знайти відповідь

2 Востаннє редагувалося koala (24.02.2023 16:18:22)

Re: Допомога новачкам. Звʼязка сервісів гугл(таблиці та диск) з ботом

Можливо і зможете, але відповіді мають одну цікаву властивість: для відповіді потрібно, щоб було питання.
Вас же, мабуть, відповідь 42 не влаштує?

Подякували: taranovitch1999, Firefox is dead2

3

Re: Допомога новачкам. Звʼязка сервісів гугл(таблиці та диск) з ботом

Дякую за відповідь. Відповідь 42 дуже дотепна.
Маю такий початок коду:
import gspread
import telebot
from oauth2client.service_account import ServiceAccountCredentials

# Налаштування доступу до таблиці Google Sheets
scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(creds)
sheet_id = '1s20GeTcsCwUbRcKTu-Cptznja-iu0WqtXUlKmTKK78E'
sheet = client.open_by_key(sheet_id).sheet1

та відповідно воно не працює і вибиває помилку наступну:
or more details, please visit https://support.apple.com/kb/HT208050.
MBP--Sergey:Телеграм Бот Sergey$ /usr/local/bin/python3 "/Users/user/Desktoеграм Бот/Chat GPT Bot.py"
Traceback (most recent call last):
  File "/Users/user/Desktop/Телеграм Бот/Chat GPT Bot.py", line 7, in <module>
    creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/oauth2client/service_account.py", line 221, in from_json_keyfile_name
    return cls._from_parsed_json_keyfile(client_credentials, scopes,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/oauth2client/service_account.py", line 171, in _from_parsed_json_keyfile
    raise ValueError('Unexpected credentials type', creds_type,
ValueError: ('Unexpected credentials type', None, 'Expected', 'service_account')

запитав про цю помилку в ChatGPT  і отримав віддповідь:

Ця помилка пов'язана з вашим файлом credentials.json. Зокрема, здається, що він не містить правильних облікових даних для автентифікації в службі Google.

Переконайтеся, що ваш файл credentials.json містить правильний ключ API та що він був створений для служби service_account Google. Якщо ви не впевнені, перевірте документацію Google для отримання детальнішої інформації.

Також переконайтеся, що ви використовуєте останню версію oauth2client, оскільки він може бути застарілим і мати проблеми зі сумісністю з Python 3.11.

Я рекомендую перевірити свій код та файли конфігурації та перевірити документацію Google та oauth2client щодо того, як налаштувати автентифікацію та ключі API.

Я так думаю що проблема в цих ключах, а як їх налаштуватти не розумію. Питання: Як їх налаштувати тта прописати щоб все працювало?

4

Re: Допомога новачкам. Звʼязка сервісів гугл(таблиці та диск) з ботом

taranovitch1999 написав:
Прихований текст

Дякую за відповідь. Відповідь 42 дуже дотепна.
Маю такий початок коду:
import gspread
import telebot
from oauth2client.service_account import ServiceAccountCredentials

# Налаштування доступу до таблиці Google Sheets
scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(creds)
sheet_id = '1s20GeTcsCwUbRcKTu-Cptznja-iu0WqtXUlKmTKK78E'
sheet = client.open_by_key(sheet_id).sheet1

та відповідно воно не працює і вибиває помилку наступну:
or more details, please visit https://support.apple.com/kb/HT208050.
MBP--Sergey:Телеграм Бот Sergey$ /usr/local/bin/python3 "/Users/user/Desktoеграм Бот/Chat GPT Bot.py"
Traceback (most recent call last):
  File "/Users/user/Desktop/Телеграм Бот/Chat GPT Bot.py", line 7, in <module>
    creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/oauth2client/service_account.py", line 221, in from_json_keyfile_name
    return cls._from_parsed_json_keyfile(client_credentials, scopes,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/oauth2client/service_account.py", line 171, in _from_parsed_json_keyfile
    raise ValueError('Unexpected credentials type', creds_type,
ValueError: ('Unexpected credentials type', None, 'Expected', 'service_account')

запитав про цю помилку в ChatGPT  і отримав віддповідь:

Ця помилка пов'язана з вашим файлом credentials.json. Зокрема, здається, що він не містить правильних облікових даних для автентифікації в службі Google.

Переконайтеся, що ваш файл credentials.json містить правильний ключ API та що він був створений для служби service_account Google. Якщо ви не впевнені, перевірте документацію Google для отримання детальнішої інформації.

Також переконайтеся, що ви використовуєте останню версію oauth2client, оскільки він може бути застарілим і мати проблеми зі сумісністю з Python 3.11.

Я рекомендую перевірити свій код та файли конфігурації та перевірити документацію Google та oauth2client щодо того, як налаштувати автентифікацію та ключі API.

Я так думаю що проблема в цих ключах, а як їх налаштуватти не розумію. Питання: Як їх налаштувати тта прописати щоб все працювало?

про ChatGPT знає, одже...

ChatGPT написав:

Цей код містить посилання на застарілу бібліотеку oauth2client, яка була оновлена та перейменована на google-auth. Також, цей код містить стару версію API Google Sheets, яка більше не підтримується. Рекомендовано використовувати нову версію API Google Sheets, яка заснована на REST API та надає більш розширені можливості.

Ось виправлений код з використанням нових бібліотек та нової версії API Google Sheets:

import gspread
import telebot
from google.oauth2.service_account import Credentials

# Налаштування доступу до таблиці Google Sheets
scope = ['https://www.googleapis.com/auth/spreadsheets']
creds = Credentials.from_service_account_file('credentials.json', scopes=scope)
client = gspread.authorize(creds)
sheet_id = '1s20GeTcsCwUbRcKTu-Cptznja-iu0WqtXUlKmTKK78E'
sheet = client.open_by_key(sheet_id).sheet1

у цьому коді ми використовуємо нові бібліотеки google-auth та google-api-python-client, а також нову версію API Google Sheets. Для коректної роботи потрібно мати дійсні облікові дані та дозволи на доступ до Google Sheets. Переконайтеся, що ви маєте файли credentials.json та token.pickle з правильними даними.

Подякували: taranovitch19991

5

Re: Допомога новачкам. Звʼязка сервісів гугл(таблиці та диск) з ботом

Народ, припиніть. ChatGPT не може бути джерелом інформації, і використовувати його можна лише як додатковий інструмент. Якщо вам щось не зрозуміло у відповіді ChatGPT - то не просіть людей пояснити її. Шукайте першоджерела.

Подякували: karmeljuk, Firefox is dead2

6

Re: Допомога новачкам. Звʼязка сервісів гугл(таблиці та диск) з ботом

koala написав:

Народ, припиніть. ChatGPT не може бути джерелом інформації, і використовувати його можна лише як додатковий інструмент. Якщо вам щось не зрозуміло у відповіді ChatGPT - то не просіть людей пояснити її. Шукайте першоджерела.

після виходу ChatGPT з усіх моїх знайомих тільки "дурненькі" використовували ChatGPT як пошукову систему, адже вона має дані лише станом на 2021 рік. А решта "розумних" використовувало як <<ось завдання дай відповідь>> щоб зекономити свій час.

в моїй відповіді (попереднє повідомлення) я попросив її полагодити код, вона полагодила ^_^
бібліотека oauth2client оновлювалася ще в далекому 2018 році https://pypi.org/project/oauth2client/
а новенька google-auth 17 лютого 2023 року (зовсім нещодавно) https://pypi.org/project/google-auth/

перед надсиланням своєї відповіді я переконався в цьому
як пошукову систему я використовував html.duckduckgo.com/html а ніяк не ChatGPT
я просто ввів у пошукову стрічку "API Google Sheets python" і перше ж посилання
https://developers.google.com/sheets/ap … art/python

там є стрічка pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
про oauth2client тут і мови нема

в подальшому відповідь ChatGPT буду підкріплювати відповідними посиланнями

Подякували: Jarko1