我正试图编写一个Python程序,在Google Drive中生成一个文件。但如果我试着这么做,上面写着
'Your browser has been opened to visit:
()
https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&response_type=code&client_id=742339009631-b7rv2mnplb22rhdjb1m663aken700cfe.apps.googleusercontent.com&access_type=offline
()'
然后它打开浏览器,我得到以下内容:
"
401. That’s an error.
Error: deleted_client
The OAuth client was deleted.
Request Details
scope=https://www.googleapis.com/auth/drive
redirect_uri=http://localhost:8080/
response_type=code
client_id=742339009631-b7rv2mnplb22rhdjb1m663aken700cfe.apps.googleusercontent.com
access_type=offline
That’s all we know."
谷歌有更新的版本吗?或者问题出在哪里?
我的代码是:
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
drive = GoogleDrive(gauth)
f = drive.CreateFile()
f.SetContentFile('hello.txt')
f.Upload()
print('title: %s, mimeType: %s' % (f['title'], f['mimeType']))
file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()
for file1 in file_list:
print('title: %s, id: %s' % (file1['title'], file1['id']))
根据处理API错误,错误代码401指示无效凭据。遇到此错误的原因通常是授权标头无效,或者您使用的访问令牌已过期或无效。
针对此类错误,建议的操作是使用长期刷新令牌刷新访问令牌。如果失败,请引导用户通过OAuth流,如使用Google Drive授权您的应用程序中所述。
此外,还显示了"OAuth客户端已删除"错误消息。您可能需要检查是否有现有的客户端ID。如果没有,则需要从Google API控制台获取新的OAuth 2.0凭据。以下是使用OAuth 2.0访问Google API的基本步骤:
- 从Google API控制台获取OAuth 2.0凭据
- 从Google授权服务器获取访问令牌
- 将访问令牌发送到API
- 如有必要,请刷新访问令牌
最后,您可能还需要检查处理错误的最佳实践:吊销或无效的令牌以及令牌过期,以便更好地预测授予的令牌可能不再工作的可能性。
希望能有所帮助!