【问题标题】:How to use Google sheets REST API directly to create a sheet如何直接使用 Google 表格 REST API 创建表格
【发布时间】:2018-08-01 18:02:40
【问题描述】:

我有一个 PHP 应用程序,不幸的是,它已经使用了 1.1.4 版本的 Google Client API,我无法更改它,这导致我无法使用 2.X 版本的 Google PHP Sheets API。

但是,我希望能够直接使用 Google Sheets REST API,进行我自己的 curl 调用(如果这很有趣,可以使用 Guzzle)。

我是 Google API 的新手,我已经阅读了他们的文档,但我无法弄清楚如何做一些基本的事情。

出于这个问题的目的,我想通过 API 使用 POSTman 等工具简单地创建一个新的 Google 电子表格。

我知道我首先必须通过https://www.googleapis.com/auth/spreadsheets 获取 OAuth2 令牌。问题是我不太清楚要传递这个电话的内容。我假设它需要一个 GET,因为 POST 返回一个错误,说明该方法不可用。

获得该令牌后,我如何在 POST 到 https://sheets.googleapis.com/v4/spreadsheets 时使用它

谁能提供一个非常基本的调用示例,我可能会直接调用以简单地创建一个非常基本的默认电子表格?

或者我认为这一切都错了?感谢所有帮助。

【问题讨论】:

    标签: google-oauth google-sheets-api


    【解决方案1】:

    如果您已经拥有 OAuth2 访问令牌,则可以在“授权”标头中传递它:

     curl -L -d '{}' \
     -H "Authorization: Bearer <INSERT ACCESS TOKEN HERE>" \
     -H 'Content-Type: application/json' \
     https://sheets.googleapis.com/v4/spreadsheets
    

    我刚刚验证了 curl 命令会创建一个新工作表。

    不幸的是,正如您已经指出的那样,这可能是最简单的部分,获取 OAuth2 访问令牌更具挑战性。

    这是我有时使用的(相对痛苦,不幸的是)方法:

    您应该首先在 API 控制台或云平台控制台中创建自己的项目,并为您自己的 OAuth2 客户端 ID 和客户端密码进行配置。

    接下来,为了玩玩,在 Google OAuth2 开发者游乐场https://developers.google.com/oauthplayground/ 中,在“OAuth 2.0 配置”下设置您的客户端 ID 和客户端密码(它是设置图标 - 右上角的小齿轮)。在您选中“使用您自己的 OAuth 凭据”之前,输入这些内容的位置将被隐藏。然后,您可以按照左侧的步骤获取范围为https://www.googleapis.com/auth/spreadsheetshttps://www.googleapis.com/auth/drive 的访问令牌。

    如果想玩更多,您可以在第 3 步中直接构建 POST,或者在上面的 curl 命令中使用第 2 步中的访问令牌。

    祝你好运 - 正确获取身份验证部分是一件棘手的事情。有很多活动部分,我只是在这里说明高点。

    关于库问题的悲剧——PHP Quick Start 似乎相对干净地处理了身份验证。

    • 蒂姆

    【讨论】:

      【解决方案2】:

      这是官方spreadsheets.create 参考。这是Sheets API Samples 的列表。我建议你离开你正在使用的当前版本并使用PHP Quickstarts,这样你就可以了解它是如何工作的。

      【讨论】:

      • 那些文档有点帮助。我试图 GET sheets.googleapis.com/v4/spreadsheets{我创建的电子表格的 ID}?fields=sheets.properties&key={我的 API 密钥},它给了我一个 403“调用者没有权限”显然我仍然缺少一些东西。
      【解决方案3】:

      这将不太令人满意,但在与它斗争了一段时间后,我想看看我是否可以违背我的问题的前提:我无法升级到最新的 Google Sheets PHP API。

      事实证明是有办法的。这让这一切变得容易多了。

      Google 的文档不完整,令人沮丧,但我还是设法让它全部正常工作。你们俩都给了我关键的指示。感谢您的帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-10
        • 1970-01-01
        • 2016-10-24
        • 1970-01-01
        • 2019-04-08
        • 1970-01-01
        • 2014-05-18
        • 1970-01-01
        相关资源
        最近更新 更多