Я пытался загрузить файл с Google Диска в локальную систему, используя скрипт python, но столкнулся с «запрещенной» проблемой при запуске скрипта Python. Сценарий выглядит следующим образом:
import requests
url = "https://www.googleapis.com/drive/v3/files/1wPxpQwvEEOu9whmVVJA9PzGPM2XvZvhj?alt=media&export=download"
querystring = {"alt":"media","export":"download"}
headers = {
'Authorization': "Bearer TOKEN",
'Host': "www.googleapis.com",
'Accept-Encoding': "gzip, deflate",
'Connection': "keep-alive",
}
response = requests.request("GET", url, headers=headers, params=querystring)
print(response.url)
#
import wget
import os
from os.path import expanduser
myhome = expanduser("/home/sunarcgautam/Music")
### set working dir
os.chdir(myhome)
url = "https://www.googleapis.com/drive/v3/files/1wPxpQwvEEOu9whmVVJA9PzGPM2XvZvhj?alt=media&export=download"
print('downloading ...')
wget.download(response.url)
В этом сценарии у меня есть запрещенная проблема. Я что-то не так делаю в скрипте?
Я также попробовал другой скрипт, который нашел на странице разработчика Google, который выглядит следующим образом:
import auth
import httplib2
SCOPES = "https://www.googleapis.com/auth/drive.scripts"
CLIENT_SECRET_FILE = "client_secret.json"
APPLICATION_NAME = "test_Download"
authInst = auth.auth(SCOPES, CLIENT_SECRET_FILE, APPLICATION_NAME)
credentials = authInst.getCredentials()
http = credentials.authorize(httplib2.Http())
drive_serivce = discovery.build('drive', 'v3', http=http)
file_id = '1Af6vN0uXj8_qgqac6f23QSAiKYCTu9cA'
request = drive_serivce.files().export_media(fileId=file_id,
mimeType='application/pdf')
fh = io.BytesIO()
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
print ("Download %d%%." % int(status.progress() * 100))
Этот скрипт дает мне Ошибка несоответствия URL-адреса .
Итак, что следует указать для URL-адреса перенаправления в учетных данных консоли Google? или любое другое решение проблемы? Нужно ли авторизовать консольное приложение Google от Google в обоих сценариях? Если да, то каков будет процесс авторизации приложения, потому что я не нашел никакого документа относительно этого.