【问题标题】:Access google spreadsheet with JSON format key使用 JSON 格式密钥访问 google 电子表格
【发布时间】:2016-05-23 13:51:40
【问题描述】:

我正在尝试使用 node.js 访问 google 表。有一个pretty good looking API,但它使用 .pem 文件来验证应用程序。第二种方法是使用 client_idclient_secretrefresh_token 用于 oauth2 或名为 accesstoken 的东西。但是我从谷歌开发控制台得到的是一个 JSON 格式的密钥:

{
        type: 'service_account',
        project_id: 'fu...ng-1234',
        private_key_id: '2fd...0ba',
        private_key: '-----BEGIN PRIVATE KEY ... END PRIVATE KEY-----\n',
        client_email: '...@appspot.gserviceaccount.com',
        client_id: '10...51',
        auth_uri: 'https://accounts.google.com/o/oauth2/auth',
        token_uri: 'https://accounts.google.com/o/oauth2/token',
        auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs',
        client_x509_cert_url: 'https://www.googleapis.com/robot/v1/metadata/x509/...%40appspot.gserviceaccount.com'
}

我知道如何将 private_key 导出到 .pem 文件,但这对我来说似乎不是一个纯粹的解决方案,因为这意味着额外的文件和潜在的安全风险。而且它也被 oauth 使用,并且有可能使用 oauth2。那么,有没有办法使用 oauth2 使用这些 JSON 格式的信息通过 API 访问 google 电子表格?

非常感谢您的任何回答。

【问题讨论】:

    标签: node.js oauth-2.0 google-sheets google-spreadsheet-api google-oauth


    【解决方案1】:

    是的,您可以通过 Google Sheet API 使用 Oauth 2.0 access Google spreadsheet。当您向非公共用户请求 Google API 时,数据必须由经过身份验证的用户授权。

    Oauth2.0 授权过程的详细信息会根据您编写的应用程序类型而有所不同。

    以下流程适用于所有申请:

    • 当您创建应用程序时,您将其注册到 Google。然后,Google 会提供您稍后需要的信息,例如客户端 ID 和客户端密码。
    • 当您的应用程序需要访问用户数据时,它会要求 Google 提供特定的访问范围。
    • Google 向用户显示一个 OAuth 对话框,要求他们授权您的应用程序请求他们的一些数据。
    • 如果用户批准,Google 会为您的应用程序提供一个短期访问令牌。
    • 您的应用程序请求用户数据,并将访问令牌附加到请求中。
    • 如果 Google 确定您的请求和令牌有效,则会返回请求的数据。

    您的应用程序需要范围信息,以及 Google 在应用程序注册期间提供的信息(例如客户端 ID 和/或客户端密码)。

    Google Sheets API v4 版本现已推出,请立即迁移您的应用。本迁移指南展示了如何更新应用程序以使用 v4:https://developers.google.com/sheets/guides/concepts

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      • 2015-09-11
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多