Oauth PyDrive guath.Refresh()和刷新令牌问题

Oauth PyDrive guath.Refresh()和刷新令牌问题,oauth,google-api,google-api-python-client,pydrive,Oauth,Google Api,Google Api Python Client,Pydrive,和其他人一样,我试图让Google刷新令牌工作,以便运行复制和重命名文件的计划任务 当我第一次在终端内手动身份验证时,我的url以&access\u type=offline结尾。但是,当我进入并尝试在ipython中手动使用gauth.Refresh()时,它会失败,错误与我的凭据文件过期时相同: pydrive.auth.RefreshError: No refresh_token found.Please set access_type of OAuth to offline. 如何将访

和其他人一样,我试图让Google刷新令牌工作,以便运行复制和重命名文件的计划任务

当我第一次在终端内手动身份验证时,我的url以&access\u type=offline结尾。但是,当我进入并尝试在ipython中手动使用gauth.Refresh()时,它会失败,错误与我的凭据文件过期时相同:

pydrive.auth.RefreshError: No refresh_token found.Please set access_type of OAuth to offline.
如何将访问类型设置为脱机?如有任何建议,我们将不胜感激

我一直在努力解决这个问题

我的剧本:

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive

gauth = GoogleAuth()

# Try to load saved client credentials
gauth.LoadCredentialsFile("GoogleDriveCredentials.txt")
if gauth.credentials is None:
    # Authenticate if they're not there
    gauth.LocalWebserverAuth()
elif gauth.access_token_expired:
    # Refresh them if expired
    print "Google Drive Token Expired, Refreshing"
    gauth.Refresh()
else:
    # Initialize the saved creds
    gauth.Authorize()
# Save the current credentials to a file
gauth.SaveCredentialsFile("GoogleDriveCredentials.txt")
drive = GoogleDrive(gauth)
My settings.yaml文件:

client_config_backend: settings
client_config:
  client_id: ###actual client_id###
  client_secret: ###actual client_secret###

save_credentials: True
save_credentials_backend: file
save_credentials_file: credentials.json

get_refresh_token: True

oauth_scope:
  - https://www.googleapis.com/auth/drive

我一直在那里和下面为我工作

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive   
gauth = GoogleAuth()
gauth.LocalWebserverAuth()
gauth.LoadCredentialsFile(gauth)
在根目录中创建一个新文件夹,上面的代码为quickstart.py。
从google drive api凭据下载client_sercrets.json并将其放入根目录中
将settings.yaml文件放入根文件夹
从控制台运行quickstart.py,它将打开一个浏览器,要求您授权应用程序。
此过程完成后,将在根目录中创建一个credentials.json文件。
访问令牌现在应该能够刷新自身

对于您的驱动器API设置,应该注意以下几点:Web应用程序类型、授权Javascript“”和授权重定向URI“”

如果成功,请将“credentials.json”、“client_secrets.json”、“settings.yaml”文件转移到生产根目录中,这样应该可以正常工作


希望这有帮助

我个人认为这段代码非常适合同样的问题: