Google表格API:从公开表格中读取单个单元格值

时间:2017-08-14 09:38:37

标签: javascript google-sheets-api

我正在尝试使用PHP / JS为WordPress编写一个简单的插件。该插件只有一个目标,即创建一个小部件。对于那些不熟悉WordPress插件实现的人来说,它并不太复杂 - 我可以正常使用JS / PHP。因此,出于这个问题的目的,单个PHP / HTML文件可能会给出我正在寻找的答案。

我有一张可公开访问的工作表,其中包含以下共享设置:

spreadsheet settings

我现在要做的就是在单个工作表上检索单个单元格的值。工作表名为Live Summary,单元格为E20

spreadsheet

我已经使用oAuth 2.0身份验证了。但是,我不希望用户必须进行身份验证才能看到此信息。

我希望我的网站始终显示此单元格的值,就好像它是网站的一个功能,或者就像我从安装了WordPress的MySQL数据库中提取它一样。

how it should look

我已经阅读过使用Google表格API中的某些GET端点,但就我而言,如果我不使用oAuth令牌,我甚至不知道从哪里开始。

有人可以请a)告诉我这是否可能,如果是的话,b)指出我正确的方向开始?

最好使用JavaScript - 但我也可以应付PHP。

1 个答案:

答案 0 :(得分:4)

以下是如何在没有OAuth的情况下使其发挥作用。

1)将您的工作表公开给网络上的每个人。 (正如你已经拥有的那样。)

2)发布:在Google表格用户界面中,导航到文件>在网上发布......

3)选择“链接”,“整个文档”,“网页”类型,然后单击“发布”。

之后,您仍然可以(仍然)使用https://developers.google.com/sheets/api/v3/worksheets中记录的旧版API来访问您的数据。

访问数据的URL格式为:

https://spreadsheets.google.com/feeds/<WHAT_KIND_OF_DATA>/<YOUR_SHEET_KEY>/<YOUR_SPREADSHEET_SHEET:)>/public/full?alt=json

因此,例如,我发布的工作表的数据(仅包含文本&#34;我在E20&#34;在E20)可以在以下网址找到:

https://spreadsheets.google.com/feeds/cells/1TbMrtJl01i-Q5YudlhdAB_E1LTYkkLswnql5LHyiIuk/1/public/full?alt=json

还有一些选项可以只发布数据的子集,这可能更适合您。但我希望这会让你前进。

编辑:后续步骤:

下一个问题可能是CORS。你可以绕过它,例如JSON-P。这是一个完全有效的JSON-P解决方案,用于在我的工作表上加载E20-cell的内容:

<html>
<body>
  <pre id='data'></pre>
</body>
<script>
  const onDataLoaded = (data) => {
    const e20Content = data.feed.entry.find((entry) => entry.title.$t == 'E20').content.$t
    document.getElementById('data').innerHTML = e20Content
  }
</script>
<script src="https://spreadsheets.google.com/feeds/cells/1TbMrtJl01i-Q5YudlhdAB_E1LTYkkLswnql5LHyiIuk/1/public/basic?alt=json-in-script&callback=onDataLoaded"></script>
</html>