【发布时间】:2021-07-04 12:50:56
【问题描述】:
有一个由 Google Drive 托管的共享电子表格文件的 URL。
和这个很像
https://docs.google.com/spreadsheets/d/1TFFswncS12FAc-Fsh33dMfL0UK87LCcZZNToV0/edit?usp=sharing
我想通过 nodejs 应用程序使用一些 Google 服务帐户和 Google Drive API 客户端库下载此文件。但据我所知,该库没有通过 URL 下载文件的方法或选项。
https://developers.google.com/drive/api/v3/manage-downloads
取而代之的是一个需要fileId 属性的get 方法,在我看来,通过fileId 访问某人的文件是不可能的。
因此,很可能,我必须根据服务帐户 client_id 和 private_key 生成一个身份验证令牌,然后下载(实际上是导出的 CSV),任何 HTTP 客户端都将令牌作为标头传递。
这是一个正确的选择吗?如何在没有密码的情况下对应用进行身份验证?
我有这样的应用程序环境变量
GOOGLE_FEED_ACCOUNT_TYPE=service_account
GOOGLE_FEED_PROJECT_ID=my-app
GOOGLE_FEED_PRIVATE_KEY_ID=sdf796a7S58FSADF9A8S97FD987AS6D8F75A8Sas
GOOGLE_FEED_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n\n-----END PRIVATE KEY-----\n"
GOOGLE_FEED_CLIENT_EMAIL=my-app@example.com
GOOGLE_FEED_CLIENT_ID=398387234329388162487
GOOGLE_FEED_FOLDER_ID=1QFBASSDFasdfasew3wsD85cHpf-9U
【问题讨论】:
-
谁曾对此投过票,请发表评论,让我们知道这可能是基于意见的。
标签: node.js google-api google-drive-api service-accounts google-api-nodejs-client