使用C#更新下拉列表Google表单

问题描述 投票:0回答:1

[我正在使用代码使用C#从Google表格读取信息(来自Google表单的结果),但是现在我想使用C#更新特定Google表单的下拉列表。我已经看到了可以在其中使用Google应用程序脚本(https://developers.google.com/apps-script/reference/forms)更新下拉列表的代码,但是我找不到在C#中执行此操作的代码。在C#中可以更新Google表格,因此您应该认为可以对Google Forms进行相同的操作。有人这样做吗?我发现的示例在应用程序脚本中非常简单

var existingForm = FormApp.openById('1234567890abcdefghijklmnopqrstuvwxyz');
var item = form.getitembyid(3567489);
var values = ["oranges", "Tomatoes"]
item.asListItem().setChoicesValues(values);
c# google-apps-script google-form
1个回答
1
投票

没有Forms API,因此您不能直接使用C#执行此操作。因此,如果要以编程方式执行此操作,唯一的选择是使用Apps Script

但是,有一些解决方法可以“包装” Apps脚本,并从您的C#程序中远程调用它:

解决方法1(Apps Script Web App):

您可以publish your script as a web app并将其用作将通过C#应用程序访问的URL端点。该Web应用程序将从您的应用程序接收HTTP请求,然后编辑表单。例如,您可以使用有关您要编辑的项目的数据执行POST请求,然后使用相应的event object检索该信息。可能是沿着这些路线:

function doPost(e) {
  var formId = e.parameter.id; // Your form id
  var itemId = e.parameter.itemId; // Your item id
  var form = FormApp.openById(formId);
  var item = form.getItemById(itemId);
  var values = e.parameters.values; // ["oranges", "Tomatoes"]
  item.asListItem().setChoicesValues(values);
}

解决方法2(应用脚本API):

[另一种方法,如果要从C#应用程序远程编辑表单,请使用Apps Script API创建并运行包含用于编辑表单的代码的Apps Script项目。当心,这不是一个简单的方法,它需要几个步骤:

  1. 通过OAuth 2.0访问表单。
  2. 使用this library,使用projects.create方法,使用Apps Script API创建一个项目。我建议您创建一个与Form绑定的项目,这样您就无需在执行脚本时对脚本进行授权。如果这样做,则需要在请求正文中指定parentId(并且可以在脚本中使用FormApp.getActiveForm(),而无需授权)。
  3. 使用在上一步中从响应中获取的scriptId,调用projects.updateContent,在其中您必须添加与项目中文件相对应的代码。
  4. 调用scripts.run以执行您的代码以更新表格。如果您在步骤2中创建了独立脚本,则必须通过OAuth 2.0对项目进行授权。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.