我正在尝试使用PHP / JS为WordPress编写一个简单的插件。该插件只有一个目标,即创建一个小部件。对于那些不熟悉WordPress插件实现的人来说,它并不太复杂 - 我可以正常使用JS / PHP。因此,出于这个问题的目的,单个PHP / HTML文件可能会给出我正在寻找的答案。
我有一张可公开访问的工作表,其中包含以下共享设置:
我现在要做的就是在单个工作表上检索单个单元格的值。工作表名为Live Summary
,单元格为E20
。
我已经使用oAuth 2.0身份验证了。但是,我不希望用户必须进行身份验证才能看到此信息。
我希望我的网站始终显示此单元格的值,就好像它是网站的一个功能,或者就像我从安装了WordPress的MySQL数据库中提取它一样。
我已经阅读过使用Google表格API中的某些GET端点,但就我而言,如果我不使用oAuth令牌,我甚至不知道从哪里开始。
有人可以请a)告诉我这是否可能,如果是的话,b)指出我正确的方向开始?
最好使用JavaScript - 但我也可以应付PHP。
答案 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)可以在以下网址找到:
还有一些选项可以只发布数据的子集,这可能更适合您。但我希望这会让你前进。
编辑:后续步骤:
下一个问题可能是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>