使用 JSON 格式键访问 google 电子表格
Access google spreadsheet with JSON format key
我正在尝试使用 node.js 访问 google table。有一个 pretty good looking API,但它使用 .pem 文件来验证应用程序。第二种方式是使用client_id、client_secret和refresh_token 用于 oauth2 或名为 accesstoken 的东西。但是我从 google 开发控制台得到的是一个 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。那么,有没有一种方法可以使用这些 JSON 格式的信息来访问 google 电子表格以及使用 oauth2 的 API ?
非常感谢您的回答。
是的,你可以access Google spreadsheet with Google Sheet API using Oauth 2.0。当您向非 public 用户请求 Google API 时,数据必须由经过身份验证的用户授权。
Oauth2.0 授权过程的详细信息会有所不同,具体取决于您编写的应用程序类型。
以下流程适用于所有申请:
- 创建应用程序时,您使用 Google 注册它。 Google 然后提供您稍后需要的信息,例如客户端 ID 和客户端密码。
- 当您的应用程序需要访问用户数据时,它会请求 Google 特定的访问范围。
- Google 向用户显示一个 OAuth 对话框,要求他们授权您的应用程序请求他们的一些数据。
- 如果用户同意,则 Google 会为您的应用程序提供一个短期访问令牌。
- 您的应用程序请求用户数据,将访问令牌附加到请求。
- 如果Google确定您的请求和令牌有效,它returns请求的数据。
您的应用程序需要范围信息,以及 Google 在应用程序注册期间提供的信息(例如客户端 ID and/or 客户端密码)。
Google 表格 API 的 v4 版本现已可用,请立即迁移您的应用程序。此迁移指南展示了如何更新应用程序以使用 v4:https://developers.google.com/sheets/guides/concepts
我正在尝试使用 node.js 访问 google table。有一个 pretty good looking API,但它使用 .pem 文件来验证应用程序。第二种方式是使用client_id、client_secret和refresh_token 用于 oauth2 或名为 accesstoken 的东西。但是我从 google 开发控制台得到的是一个 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。那么,有没有一种方法可以使用这些 JSON 格式的信息来访问 google 电子表格以及使用 oauth2 的 API ?
非常感谢您的回答。
是的,你可以access Google spreadsheet with Google Sheet API using Oauth 2.0。当您向非 public 用户请求 Google API 时,数据必须由经过身份验证的用户授权。
Oauth2.0 授权过程的详细信息会有所不同,具体取决于您编写的应用程序类型。
以下流程适用于所有申请:
- 创建应用程序时,您使用 Google 注册它。 Google 然后提供您稍后需要的信息,例如客户端 ID 和客户端密码。
- 当您的应用程序需要访问用户数据时,它会请求 Google 特定的访问范围。
- Google 向用户显示一个 OAuth 对话框,要求他们授权您的应用程序请求他们的一些数据。
- 如果用户同意,则 Google 会为您的应用程序提供一个短期访问令牌。
- 您的应用程序请求用户数据,将访问令牌附加到请求。
- 如果Google确定您的请求和令牌有效,它returns请求的数据。
您的应用程序需要范围信息,以及 Google 在应用程序注册期间提供的信息(例如客户端 ID and/or 客户端密码)。
Google 表格 API 的 v4 版本现已可用,请立即迁移您的应用程序。此迁移指南展示了如何更新应用程序以使用 v4:https://developers.google.com/sheets/guides/concepts