【问题标题】:Google Prediction API Service Authentication in .NET.NET 中的 Google 预测 API 服务身份验证
【发布时间】:2012-05-25 20:45:55
【问题描述】:

我正在尝试构建一个可以访问 Google 预测 API 的 .NET 服务应用程序。

此应用程序是一项服务(无用户交互),因此我想知道如何自动对 Google API 进行身份验证(无需打开用于登录的浏览器,然后按“授权”) .

我尝试过的:

  • 运行了一些 .NET Google API 示例 - 它们似乎都需要这种打开浏览器并要求用户单击的身份验证方案(我相信这称为本地应用程序客户端身份验证)。

  • 尝试使用Service Accounts OAuth2 身份验证 - 这是正在进行中的工作。但是,没有用于此的 .NET 库。我目前正在使用 python 示例并且遇到了一些问题(因为我不是 Python 开发人员)。

在这一点上,我希望我能够启动 python 示例,并在 .NET 中重新编写它,或者将它与 Iron Python 一起使用。

如果有人以前遇到过这种问题,我很感兴趣,解决方法是什么。如果在 .NET 中(目前)无法进行 OAuth2 服务身份验证,我也对非 OAuth2(并且可能已弃用)身份验证解决方案持开放态度。

【问题讨论】:

  • 您无法自动向 Google API 进行身份验证。您必须至少执行一次,因为您必须批准连接。在初始连接之后,该过程是无缝的,并且可以由用户随时撤销。我知道情况就是这样,因为我使用的网站会扫描我的电子邮件以获取回执。
  • 那么,有必要一次吗?我打算有一个 Windows 服务(没有 UI)。在这种情况下,是否可以在该机器上运行一个控制台应用程序来验证并在之后从服务中使用该令牌?

标签: c# authentication google-api oauth-2.0 google-prediction


【解决方案1】:

我编写了一个 sample app(在 Python 和 Java 中,抱歉在 C# 中不可用),它进行一次身份验证,将 OAuth 凭据和相关数据存储在服务器(Google App Engine)上,然后重用那些共享的凭据,在需要时刷新访问令牌,无需最终用户查看 OAuth 允许/拒绝对话框或 OAuth 的任何其他方面。

这仍然需要应用程序管理员执行 OAuth 对话框,但这是一次性事件。如果出于某种原因您想要重置存储的服务器凭据,则可以通过特殊 URL 按需重新执行初始化步骤,但是,此重置功能受到保护,因此只有应用程序管理员可以发出该请求,而不是最终用户.

【讨论】:

  • 很高兴知道这一点,我会试一试。还有一个问题:有必要在每台服务器(机器)上都执行这个一次性事件吗?
  • 不,在一次性初始化步骤中获取的 OAuth 凭据应该可以在任何地方使用(即从任何服务器)。
猜你喜欢
  • 1970-01-01
  • 2020-04-22
  • 2020-10-08
  • 2019-07-23
  • 2020-07-04
  • 2022-01-06
  • 2020-02-29
  • 2020-10-15
  • 2011-10-28
相关资源
最近更新 更多