2

我有一个应用程序,它当前检索 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)#

我想更改应用程序的行为,以便它直接从公开共享的文档 url 下载文档,但是如果我使用公共文档 url,我最终会得到一个 xls 文件,告诉我我的浏览器不符合最低要求要求,所以我正在接受基于网络的视图。如果我使用 google docs api 包装器使用的相同 url 格式,那么即使我传递了公共文档的 id,我也需要进行身份验证。

我已经搜索了 Google api 文档,但我一直无法找到正确的 url 格式来请求公共文档,以便我可以使用 cfhttp 直接下载二进制格式的电子表格?我需要下载 xls 格式的公共电子表格而不使用 cffhttp 进行身份验证的格式是什么?

4

2 回答 2

1

我最终不得不在 riaforge 上使用 Ray 的 Google API cfc 进行身份验证。使用我自己的帐户进行身份验证后,我可以将公共电子表格的 ID 传递给 google cfc 的下载功能,并且可以将电子表格下载为 xls 文件。我无法找到一种不经过身份验证就可以下载它的方法,但是这种方法将使最终用户不必使用他们的帐户进行身份验证。

于 2012-04-13T04:41:34.983 回答
1

Google 很可能会读取请求的“user_agent”变量。在 CF 中,默认情况下这个变量是带有 Coldfusion 或 java 的。尝试将“useragent”属性添加到 cfhttp 请求并使用常见的东西 - 例如“Mozilla/5.0 (Windows NT 6.1; WOW64)”。

于 2012-04-10T15:50:40.827 回答