0

Workround:由于我只需要访问电子表格,因此我使用 gspread 代替,oauth2 使用它要简单得多

我正在尝试使用 pydrive (python google drive api) 下载文件

我的代码为我工作,我没有改变任何东西,但现在它不会工作

我确保将文件公开(即使它在私有时也有效)

这是代码的相关部分:

gauth = GoogleAuth()
gauth.GetFlow()
# Try to load saved client credentials
gauth.LoadCredentialsFile("mycreds.txt")
if gauth.credentials is None:
    # Authenticate if they're not there
    gauth.LocalWebserverAuth()
elif gauth.access_token_expired:
    # Refresh them if expired
    gauth.flow.params.update({'access_type': 'offline'})
    gauth.Refresh()
else:
    # Initialize the saved creds
    gauth.Authorize()


drive = GoogleDrive(gauth)
# Save the current credentials to a file
gauth.SaveCredentialsFile("mycreds.txt")

file1 = drive.CreateFile({'id': '1naQ4crE04nBmsj7yz4GNtmp-PKrCtfTHjl_AfGoTaws'})
file1.GetContentFile('Hello.csv', mimetype='text/csv')

这是我在控制台中遇到的错误:

pydrive.files.ApiRequestError: <HttpError 404 when requesting https://www.googleapis.com/drive/v2/files/1naQ4crE04nBmsj7yz4GNtmp-PKrCtfTHjl_AfGoTaws?alt=json returned "File not found: 1naQ4crE04nBmsj7yz4GNtmp-PKrCtfTHjl_AfGoTaws">

这就是上面的链接显示的内容:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "dailyLimitExceededUnreg",
    "message": "Daily Limit for Unauthenticated Use Exceeded. 
Continued use requires signup.",
    "extendedHelp": "https://code.google.com/apis/console"
   }
  ],
  "code": 403,
  "message": "Daily Limit for Unauthenticated Use Exceeded. Continued 
use requires signup."
 }
}

任何帮助表示赞赏,谢谢

编辑:这些是我在我的 gauth 对象的凭据中看到的,有什么遗漏吗? 证书

4

1 回答 1

0

我认为您可以尝试使用您的凭据文件中的活动访问令牌从邮递员那里获取 files.get api。

如果它给出 401,则表示您的访问令牌不正确。

如果它给出 404,则表示您无权访问该文件或该文件已被删除。

于 2017-06-11T21:54:17.683 回答