如何通过Google Document List API以编程方式创建和管理Google表单

时间:2013-05-03 10:44:55

标签: java google-docs google-docs-api cloud-storage

我们有一个非常具体的需求。我们想为活动组织者创建一个通用的(基于Java的)注册系统。因此,每个活动组织者都可以在我们的应用程序上定义自定义表单,然后我们从该用户收集该特定事件的数据。

现在输入字段可以从事件更改为事件,因此我正在考虑使用一些现成的云解决方案。我想到的一个显而易见的事情就是使用谷歌表格。因此,对于每个活动,如果我们可以通过编程方式创建Google表单并获得以下两项内容: 1)嵌入该表单的链接 2)访问保留Google电子表格的相应数据

我们可以使用嵌入链接在“活动”页面上向用户显示“注册”表单。我们可以访问Google电子表格来访问用户填写注册表单的数据。

但是当我搜索它时,我无法明确地实现这一目标。有一些Google Documents List API,您可以通过该API以编程方式创建Google文档,但我无法弄清楚如何通过此API满足我们的需求。

如果有人可以在这方面指导我们,那将会有很大的帮助。或者建议我们任何备用云解决方案。

UPDATE :: 对于与电子表格链接的表单,Google似乎根本不提供API。 http://goo.gl/ia8rk如果我们很幸运,他们可能会在未来的版本中加入。 那么任何其他基于云的API都可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您有Google表格,并且想要一种自动生成表单的方法。生成的表单应将其响应链接回该电子表格。这是对的吗?

我不知道用Java做这件事的方法(如果有可用的API,我不这么认为),但这可以通过Google Scripts轻松完成。这是在Google电子表格的脚本编辑器中构建的。

以下是一个例子:

function onOpen() {
  // read the docs to add to the toolbar
}

function getColumnHeaders() {
  // this grabs the headers of your sheet
  var headers = SpreadsheetApp
    .getActiveSheet()
    .getRange(1, 1, 1, SpreadsheetApp.getActiveSheet().getLastColumn())
    .getValues()[0];

  // this will appear in your root directory
  var newForm = FormApp.create('NEW FORM NAME');
  newForm.setDestination(FormApp.DestinationType.SPREADSHEET, SpreadsheetApp.getActiveSpreadsheet().getId());

  headers.forEach(function(each) {
    newForm.addTextItem().setTitle(each);
  });
}

可以在此处找到文档:https://developers.google.com/apps-script/reference/forms/