我有一个应用程序,它目前以excel格式检索谷歌电子表格并将xls文件保存到文件系统。它正在使用riaforge上的ColdFusion google Api包装器http://cfgoogle.riaforge.org/。
包装器使用Google帐户进行身份验证,然后使用cfhttp以二进制格式下载文件。检索文档的URL如下所示。 https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=#urlEncodedFormat(arguments.id)#&fmcmd=#spreadSheetFormat(arguments.format)#
我想更改应用的行为,以便直接从公开共享的文档网址下载文档,但如果我使用公共文档网址,我最终会得到一个xls文件,告诉我我的浏览器没有满足最低要求,因此我将获得基于Web的视图。如果我使用google docs api包装器使用的相同url格式,那么我需要进行身份验证,即使我传递了公共文档的id。
我搜索了Google api文档,但我一直无法找到正确的网址格式来请求公开文档,以便我可以使用cfhttp直接下载二进制格式的电子表格?在没有使用cffhttp进行身份验证的情况下,以xls格式下载公共电子表格所需的格式是什么?
答案 0 :(得分:1)
Google很可能正在阅读请求的“user_agent”变量。在CF中,这个变量默认使用coldfusion或java。尝试将“useragent”属性添加到cfhttp请求并使用常见的东西 - 例如“Mozilla / 5.0(Windows NT 6.1; WOW64)”。
答案 1 :(得分:1)
我最终不得不在riaforge上使用Ray的Google API cfc进行身份验证。一旦使用我自己的帐户进行身份验证,我就可以将公开电子表格的ID传递给google cfc的下载功能,并且我可以将电子表格下载为xls文件。我无法在没有身份验证的情况下找到下载它的方法,但这种方法将使最终用户不必对其帐户进行身份验证。