首页 > 解决方案 > form.setRequireLogin() 给出错误脚本错误消息:异常:不支持此操作

问题描述

在应用程序脚本世界中相当新。尝试使用动态创建的问题/附件创建“谷歌表单生成器” 。

一切都很好,直到我注意到每当我创建表单时,用户都必须“通过谷歌帐户登录”。这不是要求的,所以我找到了 setRequreLogin()

无论我设置什么(假或真),我都会收到错误消息:“脚本错误消息:异常:不支持此操作”

我做了一些谷歌搜索,似乎解决方案是拥有“google suite gmail account”。我使用我的个人@gmail.com电子邮件。有人有同样的错误吗?或者有没有人在使用“常规” gmail 时没有出现同样的错误?

我是怎么做的(因为它可能与默认值有点不同):

  1. 我使用 python 来执行在 appscript 中创建的函数
  2. 应用程序脚本必须链接到“标准 GCP 项目”,否则我将无法从 python 执行(外部 API 调用)
  3. 我发布了应用程序脚本“部署为 API 可执行文件”,以便我可以从 Python 执行(并传递几个参数)脚本

感谢帮助

function createForm(ordernumber,surname, country, data_list) {
var form = FormApp.create(ordernumber);


form.setTitle(ordernumber +" | " + surname)
    .setDescription('anything')
    .setConfirmationMessage('you are welcome...');
//    .setAllowResponseEdits(true)
//    .setLimitOneResponsePerUser(true)
//      .requiresLogin(false);
      .setRequireLogin(true);
//    .setAcceptingResponses(true);

}

标签: google-apps-script

解决方案


根据setRequireLogin() 文档

setRequireLogin()- 设置表单是否要求受访者在回复之前登录到同一域或子域中的帐户。除非域管理员更改默认值,否则新表单的默认值为 false。

此功能仅适用于 Google Workspace 用户创建的表单。不能要求其他类型的 Google 帐户的用户登录。

因此,如果您拥有gmail帐户,则不能使用此方法。

但是,由于您的脚本正在创建一个新表单,因此使用此 API 可执行文件的用户必须授权此操作,因此他们将收到登录屏幕。

参考


推荐阅读