Как сохранить файл pickle в базу данных sqlalchemy python? - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть пользовательский бот python для управления папкой / файлами https://github.com/adekmaulana/ProjectBish/blob/master/userbot/modules/google_drive.py из telegram, и он запускается на heroku.
Однако в функции generate_credentials() после того, как пользователь завершил аутентификацию, пользователь должен поставить их токен в переменную heroku для следующего запуска, и это не очень удобно для пользователя, потому что некоторые пользователи не знают, как важно \n в строках токена.
Я хотел сделать пользователя более удобным, сохранив учетные данные в pickle как google. В документации api drive v3 написано и сохраняется в базе данных, но я потерян для начала.
Я пытался поместить декодированные учетные данные в строки и сохранить их в базе данных sqlalchemy, но при загрузке я получаю странную ошибку, credentials считает, что он работает на облачной консоли Google ??? он говорит:
raise exceptions.DefaultCredentialsError(__HELP_MESSAGE)
google.auth.exceptions.DefaultCredentialsError: could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started
любой совет, чтобы сделать его более удобным для пользователя, был бы очень признателен, спасибо ...

Обновлено:
Так что проблема заключается в учетные данные, которые я извлекаю из базы данных, не получаются после вызова в сборке ('drive', 'v3').

1 Ответ

0 голосов
/ 05 мая 2020

исправлено с помощью credentials = Column(Text, nullable=False) перед этим исправлением. Я использую credentials = Column(String).
, либо String, либо Text - то же самое, что я пробовал оба, единственное, что делает creds пустым после того, как я извлек из базы данных, потому что я не использую nullable=False раньше.

...