2012-04-10 34 views
2

我有一個應用程序,它目前以excel格式檢索google電子表格並將xls文件保存到文件系統。它在riaforge上使用ColdFusion google Api包裝器,http://cfgoogle.riaforge.org/使用cfhttp檢索公共電子表格文檔

封裝程序使用Google帳戶進行身份驗證,然後使用cfhttp以二進制格式下載文件。檢索文檔的URL如下所示。 https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=#urlEncodedFormat(arguments.id)#&fmcmd=#spreadSheetFormat(arguments.format)#

我想改變應用程序的行爲,以便它直接下載文件從公開共享文件的URL,但如果我使用公共文檔URL我結束了一個XLS文件,告訴我,我的瀏覽器不符合最低要求,所以我正在接受基於網絡的觀點。如果我使用google docs api包裝器使用的相同url格式,那麼即使我傳遞了公共文檔的id,我也需要進行身份驗證。

我搜索了Google API文檔,但我一直無法找到正確的URL格式來請求公共文檔,以便我可以使用cfhttp以二進制格式直接下載電子表格?無需使用cffhttp進行身份驗證,我需要以xls格式下載公用電子表格的格式是什麼?

回答

1

我最終不得不在riaforge上使用Ray的Google API cfc進行身份驗證。使用我自己的帳戶進行身份驗證後,我可以將公用電子表格的ID傳遞給Google cfc的下載功能,並且可以將電子表格下載爲xls文件。我無法找到一種無需進行身份驗證即可下載的方法,但此方法將使最終用戶無需使用其帳戶進行身份驗證。

1

Google很可能會讀取請求的「user_agent」變量。在CF中,這個變量默認是用coldfusion或者java的。嘗試將「useragent」屬性添加到cfhttp請求中,並使用一些常見的東西 - 比如「Mozilla/5.0(Windows NT 6.1; WOW64)」。

+0

我給了這個試試看,我最終得到的電子表格是我想要的是一個Web響應,要求我進行身份驗證,但是如果我通過網址進入實際的瀏覽器,公共電子表格會顯示爲沒有我通過身份驗證到谷歌。我不確定爲什麼它在執行瀏覽器中的url和cfhttp之間會有不同的表現? – 2012-04-10 16:18:17

+0

當時可能還有更多。我將使用Firebug來檢查從FF發送到谷歌的原始請求(請求成功),然後查看是否有其他變量或標頭或Cookie參與。這很可能是試驗和錯誤:) – 2012-04-10 16:20:58

+0

看來,它可能不再可能沒有身份驗證下載電子表格?這可能是真正的問題,沒有人知道下載公共Google電子表格所需的url格式,而無需進行身份驗證。 – 2012-04-12 04:02:03

相關問題