如何从 Windows 服务授权 Google Sheets API

Posted

技术标签:

【中文标题】如何从 Windows 服务授权 Google Sheets API【英文标题】:How to authorize the Google Sheets API from a Windows Service 【发布时间】:2017-05-16 06:45:18 【问题描述】:

我按照this link 创建了一个使用 Google Sheets API 的 Windows 控制台应用程序,它运行良好。

但是,当我尝试构建一个 Windows 服务来做同样的事情时,它在授权时冻结,大概是因为网页没有弹出允许我对其进行授权(这对服务来说是有意义的)。

如何授权?链接说

如果失败,请从控制台复制 URL 并在浏览器中手动打开它

如果我知道网址是什么,那就太好了。

【问题讨论】:

您可能希望在文档中查看其他验证您的应用程序的方案 - Using OAuth 2.0 to Access Google APIs。就像使用服务帐户授权您的请求一样,没有任何弹出窗口来授权它。希望这会有所帮助。 【参考方案1】:

不是一个明确的答案,但 OAuth 是为涉及用户的交互式场景而设计的。

对于服务,您应该在谷歌开发者控制台中创建服务帐户并为其创建私钥(https://developers.google.com/identity/protocols/OAuth2ServiceAccount)。

然后您必须更改代码以使用从第一步创建的私钥派生的 JWT 身份验证令牌。

有人已经回答了如何用 C# 做到这一点:Is there a JSON Web Token (JWT) example in C#?

【讨论】:

以上是关于如何从 Windows 服务授权 Google Sheets API的主要内容,如果未能解决你的问题,请参考以下文章

使用服务帐户时如何修复 google ads api 未经授权的错误

使用 Google Play Developer API 进行服务器端授权?

向 Google 进行身份验证时,从 Spring OAuth2 授权服务器发出 JWT 令牌

如何从Java脚本安全地调用Google Cloud Run服务?

Google GCM 服务器返回未经授权的错误 401

Rails 6 API + React + Google login:登录后如何授权用户访问某些服务器路由?