3

突然,这种直接发布到公共电子表格的表格停止了:

<form action='https://drive.google.com/spreadsheet/formResponse?formkey=XXXXXXXXXXXXXXXX' method='post'>
<input type='text' name='entry.0.single' />
<input type='text' name='entry.1.single' />
[...]
</form>

我设法通过与电子表格关联的表单来做到这一点:

<form action='https://docs.google.com/forms/d/XXXXXXXXXXXXXXXXXXXXXXXXXXXXX/formResponse' method='post'>
<input type='text' name='entry.YYYYYYYYYYY' />
<input type='text' name='entry.ZZZZZZZZZZZ' />
[...]
</form>

问题是:每个表单的输入名称都不同,与旧的方法不同,它是 entry.0、entry.1 等。有什么解决方法吗?

4

2 回答 2

2

我记得在某处读到 G 不喜欢第三方应用程序绕过表单直接发布到电子表格。您可能需要编写一个简单的 Apps Script 或 App Engine servlet 以获得可靠的替代方案。

于 2013-09-11T04:06:05.240 回答
0

在过去的几天里,我用两种不同的形式遇到了这个问题,我已经使用了很长一段时间了。就我而言,我从 Google 表单中的 html 开始,并在我自己的页面中重写了它,由我的服务器提供服务。当我看到这个问题时,我检查了新表单的来源,并将操作 URL 粘贴到我的表单中。没有用,但方式不同。然后,我将所有 entry.x.single 名称替换为 entry.10000x 名称。仍然遇到问题。花了一段时间,但我终于意识到失败的条目是类型条目。原始的 Google 表单在我提供的表单上有一个条目的子集(一个条目是基于另一个条目动态更新的,这就是我一开始走这条路的原因)。我回到谷歌表单并将这些更改为输入类型 = 文本条目,它可以接受任何东西,我又重新开始工作了。似乎正在根据与电子表格一起存储的表单上对 Google 可见的选项列表验证 POST 响应。

在我自己的服务器上提供的另一种形式上,问题似乎更简单。我再次有一个“选择”类型的条目,同样只有一个条目的子集。谷歌知道的条目很好。所以我只是添加了其余的,一切都很好。请注意,我没有更改操作 URL,也没有更改 entry.x.single 名称。不知道为什么会这样,但至少对我来说确实如此。

于 2014-10-11T03:45:56.277 回答