使用 pydrive 从 OAUTH 游乐场谷歌实现访问令牌

Posted

技术标签:

【中文标题】使用 pydrive 从 OAUTH 游乐场谷歌实现访问令牌【英文标题】:Implement access token from OAUTH playground google with pydrive 【发布时间】:2022-01-20 07:25:57 【问题描述】:

我试图在不使用 pydrive 请求谷歌驱动器权限的情况下进行身份验证,他们建议我遵循这个答案 answer on stack 但是当我得到访问令牌时,我真的不知道在哪里放置它,我尝试了 client_secret .json 但没有用。

【问题讨论】:

【参考方案1】:

您关注的问题来自2013,关注任何旧的总是废话的问题。

首先,使用Oauth2 playground 仅用于测试和开发。如果您不使用自己的客户端 ID 和客户端密码,在 Oauth 游乐场创建的令牌将很快过期。如果您使用自己的客户端 ID 和客户端密码,那么您的刷新令牌将在 7 天内过期。由于您不拥有该域,因此无法使用 Oauth Playground 的重定向 uri 验证应用程序。所有这些安全保护措施都是在 2013 年之前实施的。

假设您有一个单用户应用程序并且您只会访问自己的驱动器帐户,那么您应该使用service account。

from pydrive2.auth import GoogleAuth
from pydrive2.drive import GoogleDrive
from oauth2client.service_account import ServiceAccountCredentials

scope = ["https://www.googleapis.com/auth/drive"]
gauth = GoogleAuth()
gauth.auth_method = 'service'
gauth.credentials = ServiceAccountCredentials.from_json_keyfile_name('client_secrets.json', scope)
drive = GoogleDrive(gauth)

about = drive.GetAbout()

print('Current user name:'.format(about['name']))
print('Root folder ID:'.format(about['rootFolderId']))
print('Total quota (bytes):'.format(about['quotaBytesTotal']))
print('Used quota (bytes):'.format(about['quotaBytesUsed']))


file_list = drive.ListFile().GetList()
for file1 in file_list:
  print('title: %s, id: %s' % (file1['title'], file1['id']))

您应该咨询 pydrive github 页面 service account 或我们的官方 google api python sample。

【讨论】:

以上是关于使用 pydrive 从 OAUTH 游乐场谷歌实现访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

如何避免使用 google drive api 和 pydrive 的身份验证页面

为啥 google oauth2 playground 无法返回数据?

在Mac上安装PyDrive

oAuth 2.0 游乐场

OAuth 2.0 游乐场:未授权客户端

通过 oauth 游乐场为 android 应用程序重置 Google 游戏服务成就?