来自服务器(后端)的带有Python的Google Drive API,无需启用浏览器

Rod*_*ues 6 python google-drive-api

我想将Saas Appication的文件保存到我的Google云端硬盘帐户中,我看到的所有示例都是使用oauth2自动生成的,并且需要最终用户自动打开浏览器,我需要从服务器上载文件而没有任何用户互动,将文件直接发送到我的帐户!

我尝试了很多在互联网上找不到成功的教程,主要是官方的

带有Python的Google Drive API

如何以编程方式从服务器中自动备份文件,上传文件并使用API​​功能(例如共享文件夹等)?

我使用的是Python,lib PyDrive使用了相同的方法来自动化

and*_*sit 5

您可以执行此操作,但是需要使用Service Account,它是(或可以用作)应用程序的帐户,不需要打开浏览器。

该文档位于:https : //developers.google.com/api-client-library/python/auth/service-accounts

还有一个示例(没有PyDrive,它只是所有这些的包装,但是使服务帐户有些棘手):

from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
from httplib2 import Http

scopes = ['https://www.googleapis.com/auth/drive.readonly']

credentials = ServiceAccountCredentials.from_json_keyfile_name('YourDownloadedFile-5ahjaosi2df2d.json', scopes)

http_auth = credentials.authorize(Http())
drive = build('drive', 'v3', http=http_auth)

request = drive.files().list().execute()
files = request.get('items', [])
for f in files:
    print(f)
Run Code Online (Sandbox Code Playgroud)


Rey*_*cia 0

查看对 Web 服务器应用程序使用OAuth 2.0 。看来这就是您要找的。

任何使用 OAuth 2.0 访问 Google API 的应用程序都必须具有授权凭据,用于向 Google 的 OAuth 2.0 服务器标识该应用程序。以下步骤说明如何为您的项目创建凭据。然后,您的应用程序可以使用凭据来访问您为该项目启用的 API。

打开 API 控制台中的凭据页面。单击创建凭据 OAuth 客户端 ID。完成表格。将应用程序类型设置为Web应用程序。使用 PHP、Java、Python、Ruby 和 .NET 等语言和框架的应用程序必须指定授权的重定向 URI。重定向 URI 是 OAuth 2.0 服务器可以向其发送响应的端点。为了进行测试,您可以指定引用本地计算机的 URI,例如http://localhost:8080

我们建议您设计应用程序的身份验证端点,以便您的应用程序不会向页面上的其他资源公开授权代码。