2017-08-14 143 views
0

我正在嘗試使用PHP/JS爲WordPress編寫一個簡單的插件。該插件只有一個目標,即創建一個小部件。對於那些不熟悉WordPress插件實現的人來說,這不是太複雜 - 我可以像平常一樣使用JS/PHP。因此,爲了這個問題的目的,一個PHP/HTML文件可能會給出我正在尋找的答案。Google Sheets API:從公開表單中讀取單元格值

我有以下共享設置可公開訪問的表:

spreadsheet settings

所有我想現在要做的是檢索一個工作表的單個單元格的值。該工作表稱爲Live Summary,單元格爲E20

spreadsheet

我得到這個工作使用OAuth 2.0認證。但是,我不希望用戶必須進行身份驗證才能看到此信息。

我希望我的網站在任何時候都顯示這個單元格的值,就好像它是網站的一個功能,或者好像我從安裝WordPress的MySQL數據庫中取出它一樣。

how it should look

我讀過有關使用某些GET端點從谷歌API表,但對我的生活我甚至不知道在哪裏,如果我不使用OAuth憑證啓動。

是否有人可以請a)告訴我這是否可能,如果是這樣,b)指出我正確的方向開始?

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

+0

這裏爲大家介紹一些選擇:https://stackoverflow.com/a/42757972 – mtkopone

+0

感謝您的@ mtkopone,這是一個有用的鏈接。我已經檢查了所有這些資源,但我並沒有接近我的主要問題 - 我不知道如何(或者,如果甚至可能的話 - 肯定是?)訪問API *授權。或者,也許我需要使用一種通過「bot」驗證過的授權,以便所有用戶都可以訪問這些信息。 – dunc

回答

1

下面介紹如何在沒有OAuth的情況下使其工作。

1)將您的工作表公開給網絡上的所有人。 (當你已經有了。)

2)發佈它:在谷歌表UI,導航到File>在網絡上發佈...

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

因此,例如,對於我已經發表了片數據(只包含文本「我E20」在E20)可以在這裏找到:

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

還有幾個選項只公佈數據,這可能是更適合你的一個子集。但我希望這能讓你前進。

編輯:接下來的步驟:

下一個問題可能是CORS。你可以繞過它,例如JSON-P。這裏是一個完全工作的JSON-P解決方案,裝上我的表中的E20-單元格的內容:

<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> 
+0

*編輯*我沒有閱讀你的帖子的更早的位,你解釋這個答案,請忽略!這正是我想要的 - 您的代碼示例已開箱即用(使用我的電子表格ID)。我會在19小時內給予獎勵 - 謝謝。 – dunc

相關問題