【问题标题】:Update dropdown list Google Forms with C#使用 C# 更新下拉列表 Google 表单
【发布时间】:2020-02-17 17:34:50
【问题描述】:

我正在使用代码通过 C# 读取来自 Google 表格的信息(来自 Google 表单的结果),但现在我想使用 C# 更新特定 Google 表单的下拉列表。我已经看到代码,您可以在其中使用谷歌应用脚​​本 (https://developers.google.com/apps-script/reference/forms) 更新下拉列表,但我在 C# 中找不到执行此操作的代码。在 C# 中可以更新 google sheet,因此您应该认为可以对 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-forms


    【解决方案1】:

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

    不过,有一些变通方法可以“包装”Apps 脚本,并从您的 C# 程序远程调用它:

    解决方法 #1(Apps 脚本 Web 应用):

    您可以 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(Apps 脚本 API):

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

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

    参考:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-16
      • 2022-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多