Я думаю, что это невозможно с идентификатором пользователя и паролем. То, как Google Диск реализует это, использует токен обновления. Это означает, что вы аутентифицируете свое приложение один раз в интерактивном режиме. Это позволяет вам приложение на один час. Если механизм токена обновления настроен правильно, приложение будет обновлять токен каждый раз, когда он понадобится.
В основном следующие шаги должны быть приняты
- Визит console.developers.google.com
- Зарегистрируйте проект и получить OAuth идентификаторы клиента
- Выберите в качестве типа веб-сервера и введите «http://localhost:8080/» в качестве разрешенного URL-адреса перенаправления
- Загрузите файл client_secrets.json и сохраните его в корне вашего приложения python
Создайте файл под названием «установка ings.yaml»в том же месте со следующим содержанием
client_config_backend: settings
client_config:
client_id: YOUR_CLIENT_ID_GOES_HERE
client_secret: YOUR_CLIENT_SECRET_GOES_HERE
save_credentials: True
save_credentials_backend: file
save_credentials_file: credentials.son
get_refresh_token: True
oauth_scope:
- https://www.googleapis.com/auth/drive.file
- https://www.googleapis.com/auth/drive.install
В коде питона вам нужно сделать надлежащую идентификацию и мандате экономии:
gauth = GoogleAuth()
gauth.settings["get_refresh_token"]=True
gauth.settings["approval_prompt"]="force"
if exists(self.credsFile):
gauth.LoadCredentialsFile(self.credsFile)
if gauth.credentials is None:
# Authenticate if they're not there
gauth.LocalWebserverAuth()
gauth.SaveCredentialsFile(self.credsFile)
elif gauth.access_token_expired:
# Refresh them if expired
gauth.Refresh()
gauth.Authorize()
else:
# Initialize the saved creds
gauth.Authorize()
# Save the current credentials to a file
gauth.SaveCredentialsFile(self.credsFile)
self.driveInstance= GoogleDrive(gauth)
Убедитесь, что вы передаете в self.credsFile в качестве действительного имени файла
Выполнение этого кода должно содержать URL-адрес консоли. Скопируйте его в браузер, подтвердите подлинность и дайте свое согласие. Google должен запросить у вас два соглашения, второе - для аутентификации на Google Диске, что фактически выполняется токеном обновления.
URL-адрес перенаправления из начальной конфигурации учетных данных в консоли разработчика вызывается после получения согласия. Он вызывает временный веб-сервер, запущенный вашим приложением. Так происходит обратный вызов.(Это означает, что вы должны запустить браузер и приложение на той же машине, на этом этапе - вы можете скопировать все три файла на сервер)
Теперь ваше приложение должно работать вечно, не требуя вмешательства пользователя.
Попробуйте задать более правильный вопрос, если вы хотите, чтобы ваш вопрос ответил. Взгляните на эту [How-to-ask] (http://stackoverflow.com/help/how-to-ask) документацию. – Andres