我尝试使用node.js访问google table。有一个pretty good looking API,但它使用.pem文件来验证应用程序。第二种方法是使用 client_id , client_secret 和 refresh_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。那么,有没有办法如何使用这些JSON格式信息使用oauth2使用此API来访问Google电子表格?
非常感谢您的回答。
答案 0 :(得分:0)
是的,您可以使用access Google spreadsheet使用Google Sheet API Oauth 2.0。当您向非公共用户请求Google API时,数据必须由经过身份验证的用户授权。
Oauth2.0授权过程的细节会有所不同,具体取决于您编写的应用程序类型。
以下流程适用于所有申请:
您的应用程序需要范围信息以及Google在应用程序注册期间提供的信息(例如客户端ID和/或客户端密钥)。
Google表格API版本v4现已推出,请立即迁移您的应用。此迁移指南介绍了如何更新要使用v4的应用程序:https://developers.google.com/sheets/guides/concepts