oauth - 在 Google 电子表格 API 中使用 OAuth 2.0 授权请求

标签 oauth google-sheets google-data-api google-spreadsheet-api

我正在尝试创建一个 PHP 网页,该网页需要从我的域中的谷歌电子表格中读取一些数据(我正在使用谷歌应用程序免费版)。

要阅读的电子表格是非公开的,但对我域中的某些人可见。由于它是非公开的,我知道即使我使用 API 读取它也会有一些身份验证和授权的东西。

我找到了这个页面,但有一些我不明白的地方:
http://code.google.com/intl/zh-TW/apis/spreadsheets/data/3.0/developers_guide.html#Auth

它说我们应该使用 OAuth 2.0 协议(protocol),这没关系。但它在授权过程中也说, “谷歌向用户显示一个 OAuth 对话框,要求他们授权你的应用程序请求他们的一些数据。” .

我的网页将显示从电子表格中读取的一些数据。因此,每当有人访问我的网页时,它都会向电子表格所有者显示一个对话框,请求许可?这就是它的意思吗?

任何建议都将受到欢迎。

最佳答案

您实际上想要完成的是您的服务器和 Google 之间的服务器到服务器身份验证。

这样,当访问者进入您的页面时,您将从自己的电子表格中获取数据,而无需任何第三方参与。

你不可能在 Google Service Account 中找到你要找的东西, 和 here

还,
另一种解决方案(更容易完成,但可能会遇到一些挫折)是使用 oauth 2.0 协议(protocol)与您的 Google 开发帐户(从 Google Console API 检索)。

  • 如果您还没有,请创建一个 Google 开发帐户(Google 控制台 API)
  • 使用“离线”授权为您的应用程序生成访问/刷新 token - 这意味着即使您没有使用电子表格帐户登录,您也可以使用您的开发帐户向电子表格帐户发出 API 请求。
  • 保存您生成的刷新 token 并使用它一遍又一遍地生成访问 token (访问 token 持续 1 小时)。

  • 刷新 token 不应该过期,但如果它会过期,您总是可以再次生成它并用新的替换您拥有的 token ,并继续使用它生成访问 token 。

    主要的挫折是如果您的刷新 token 失效,您必须手动替换它,因为它需要您重新授予对您的开发帐户的访问权限才能访问您的电子表格帐户。

    我希望这个能有一点帮助。

    梅尼

    关于oauth - 在 Google 电子表格 API 中使用 OAuth 2.0 授权请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7964711/

    相关文章:

    php - 为什么使用 facebook 登录不起作用? (除了检查 url 之外如何调试这个问题?)

    google-sheets - 在 Google 表格中多次重复一系列项目

    java - 为什么 google api 客户端库不建立在 Apache 的 Abdera 框架之上?

    full-text-search - Google Sites API 全文搜索不适用于非西方语言

    java - 使用 Java 配置的 Spring-Security OAuth2 StackOverflowError

    iphone - 验证 token (授予访问权限)后,不会重定向到回调 URL

    oauth - 认知 : User Pool Client OAuth Scope Limitation

    ios - XML 到对象 Objective-C

    google-sheets - 自动电子表格计算

    c# - 由于 Google 数据列表 API 已被弃用,那么 Google 网站应使用哪个 API?