Есть рабочий скрипт, который сохраняет гугл таблицу в ексель. На эту таблицу есть доступ по ссылке.
Столкнулся с такой проблемой, что в другой таблице доступ тоже по ссылке, но там настройки другие, уже требовался запрос на подтверждение по почте. И эта ссылка работает только после авторизации.
Как модифицировать код, чтобы был доступ по второй ссылке?
Это теперь обязательно придётся авторизовываться, .т.е. прописывать в коде ввод логина/пароля? И как это выглядит?
Возможно, стоит подтянуть матчасть в разделе OAuth. Если в двух словах, то вам нужно зарегистрировать ключ на серверах Гугл, чтобы он мог разрешать вашему приложению запрашивать разрешения на доступ для ваших пользователей. Звучит немного угрожающе, но на практике все сводится к банальщине. Обратите внимание, что для Python характерно беспорядочное размножение библиотек разного рода и порядка. Для работы с Таблицами я настоятельно рекомендую углубиться или в Google API Python Client или в burnash/gspread. Самое главное, обратите внимание, что Гугл сделал oauth2client deprecation. Что на замену, смотрите тут.
Alexander Ivanov, Спасибо! А такой ещё вопрос: обязательно ли при запуске программы каждый раз вводить логин/пароль или можно прописать, чтобы они подхватывались автоматом, если пользователь уже авторизован в гугле?
Soul1, это зависит от реализации протокола. Вы можете указать для приложения Google, что у вас настольное приложение или внешний сервер и настроить время жизни токена. Токен (часть протокола) - ключ, который выдается вашему приложению, и который вы храните на стороне клиента или передаете от имени клиента (при серверной реализации). При инициализации (при первом вводе логина и пароля) можно указать, что должен и что может токен, а также, как он может быть обновлен, в случае истечения срока жизни. Опять же, это не ответ на ваш вопрос. Просто совет, если вы не сталкивались с протоколами авторизации, то как минимум надо хоть что-то почитать про это, на худой конец на Швабре. Посмотрите пример тут https://developers.google.com/sheets/api/quickstar.... Обратите внимание, как они пишут в файл токена, если не удалось использовать или обновить текущий токен
# Save the credentials for the next run
with open('token.json', 'w') as token:
token.write(creds.to_json())
Ну, и если у вас серверная реализация, то лучше обеспечить себя готовым инструментом хранения таких данных. Сильно зависит от платформы или фреймворка, который вы используете.
Alexander Ivanov, Скопировал по вашей ссылке пример, установил библиотеки - пример не запускается, ошибка FileNotFoundError: [Errno 2] No such file or directory: 'credentials.json'
Не хочет создавать файл json.
И в инструкции в документации написано, что при первом запуске появится окно с авторизацией, у меня его нет.