0
0 комментариев

В google console создал API Keys.
Написал скрипт который удаленно подключается к моему Google drive (Диск), и получает список папок. (Ну в общем скрипт много что делает, удаленно заливает файлы в мою папку, ищет нужную папку, создает папки, и т.д.) Но все это работает если подключаюсь через OAuth2WebServerFlow, однако так я делать могу только в случае разработки, так как в консоле мне выпадает первый рас ссылка по которой я перехожу и получаю код активизиции, подтверждаю его, и потом работает мой код спокойно сам.
Но на рабочем сервере, у меня нет возможности получать эту ссылку и ввести код активации, и программа просто замирает на этом шаге.

Выход — использовать API Keys. Как пишут в документации: “Всё очень просто, однако API Keys придется передавать каждый рас”. Я согласен его передавать каждый рас, но увы не выходит.

Но увы, ищу второй день и не могу найти ни единого примера работы с drive через API Keys.

Вот пример нерабочего куска кода, хотя по примерам и эксперементам я ну никакой ошибки тут не вижу.

#google key
API_key = "xxxxx"
#creating an instance of the class
drive_service = build('drive', 'v2', developerKey = API_key)
#get a list of child folder in
children = drive_service.children().list(folderId='yyyyyyy', **param).execute()

Вываливает ошибку: HttpError 401 when requesting https://www.googleapis.com/drive/v2/files?alt=json&key=xxxxx returned «Login Required»

Второй способ пробую:

f = open(SERVICE_ACCOUNT_PKCS12_FILE_PATH, 'rb')
key = f.read()
f.close()
 
credentials = SignedJwtAssertionCredentials(service_email, key, scope=OAUTH_SCOPE, prn = email)
http = httplib2.Http()
http = credentials.authorize(http)
drive_service = build('drive', 'v2', http = http)

Ошибка тут: access_denied

Может кто-то в курсе что именно и как подсунуть google чтобы прошла авторизация по статическим данным?


Добавить комментарий