這曾經有效:
curl 'https://docs.google.com/spreadsheets/d/1xaGu5Cd0kRPKy0v-EaVxgfnUxaxWlgDhfhfgRQy6hrc/gviz/tq?tqx=out:csv&sheet=Inv_Summary&range=A:G'
段 tqx=out:csv 指定格式,作業表指定選項卡名稱,并列出要輸出的列范圍。
現在,如果我這樣做,我會得到:
<HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="https://accounts.google.com/ServiceLogin? service=wise&passive=1209600&continue=https://docs.google.com/spreadsheets/d/1_fZoLgNGB3fXZqgzCr1gtDnJ2Gowi4dFgovmjsSPHy8/gviz/tq?tqx=out:csv&sheet=Inv_Summary&range=A:G&followup=https://docs.google.com/spreadsheets/d/1_fZoLgNGB3fXZqgzCr1gtDnJ2Gowi4dFgovmjsSPHy8/gviz/tq?tqx=out:csv&sheet=Inv_Summary&range=A:G&ltmpl=sheets">here</A>.
</BODY>
</HTML>
那個長長的回應,為了讓人們更容易理解而被打破
<A HREF="https://accounts.google.com/ServiceLogin?
service=wise&passive=1209600&
continue=
https://docs.google.com/spreadsheets/d/1_fZoLgNGB3fXZqgzCr1gtDnJ2Gowi4dFgovmjsSPHy8/
gviz/tqtqx=out:csv&sheet=Inv_Summary&range=A:G&
followup=
https://docs.google.com/spreadsheets/d/1_fZoLgNGB3fXZqgzCr1gtDnJ2Gowi4dFgovmjsSPHy8/
gviz/tq?tqx=out:csv&sheet=Inv_Summary&range=A:G&
ltmpl=sheets">here</A>
您會注意到后續 URL 與臨時移動 URL 相同。
現在,如果我將 curl 陳述句之后的原始鏈接粘貼到 chrome 中的地址行中,我會立即打開一個檔案進行下載,它會做正確的事情。
為什么 curl 不能做到這一點?
如何恢復舊的行為?
背景:我保留了一個跟蹤我的林場庫存的谷歌表。庫存匯總在資料透視表上。腳本會抓取資料透視表資料,并使用它為我的網站生成 HTML 頁面。
uj5u.com熱心網友回復:
一定要喜歡資訊豐富的資訊。
- 有問題的電子表格不是公開可讀的。
- 當谷歌檢查檔案時,curl 沒有傳遞 OAuth 令牌。與其說“這個應用程式沒有提供有效的令牌”之類的聰明的話,而是讓我參考網頁版本。
- 由于我已經在瀏覽器中獲得授權,因此此處的鏈接有效。
要解決此問題,您可以執行以下兩項操作之一:
答:使檔案公開可讀——知道鏈接的任何人都可以閱讀它。由于這基本上只是庫存控制中的簿記,我不在乎誰讀它。
B:跳過箍讓 OAuth 與 Curl 一起作業。一個很好的起點是這里:


轉載請註明出處,本文鏈接:https://www.uj5u.com/net/418611.html
標籤:
上一篇:將條目添加到db的并發問題
