Forms 我正在编写这段代码,用谷歌表单和链接到它的电子表格更新谷歌联系人

Forms 我正在编写这段代码,用谷歌表单和链接到它的电子表格更新谷歌联系人,forms,google-apps-script,google-sheets,android-contacts,google-forms,Forms,Google Apps Script,Google Sheets,Android Contacts,Google Forms,我希望这段代码在表单提交时使用触发器自动添加联系人,但我收到错误。 该代码与电子表格正常工作,但我无法使其与表单一起工作。 我有点不懂编码。 所以简单的解释会有帮助 此外,联系人也可以添加到谷歌联系人的“其他”组中,有没有办法将其直接添加到“我的联系人”中 函数createHeaders(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var sheet=ss.getSheets()[0]; //冻结第一排 活页。设置冻结行(1); //为标题设

我希望这段代码在表单提交时使用触发器自动添加联系人,但我收到错误。 该代码与电子表格正常工作,但我无法使其与表单一起工作。 我有点不懂编码。 所以简单的解释会有帮助

此外,联系人也可以添加到谷歌联系人的“其他”组中,有没有办法将其直接添加到“我的联系人”中

函数createHeaders(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[0];
//冻结第一排
活页。设置冻结行(1);
//为标题设置所需的值
var值=[
[“名字”、“姓氏”、“电子邮件”、“电话号码”、“公司”、“备注”]
];
//设置单元格的范围
var范围=sheet.getRange(“A1:F1”);
//在range上调用setValues方法并传入我们的值
范围。设置值(值);
}
函数createContact(){
var alreadyAdded=“已添加”;
var sheet=SpreadsheetApp.getActiveSheet();
var startRow=2;//要处理的第一行数据
var numRows=2;//要处理的行数
//获取单元格A2:G3的范围
var dataRange=sheet.getRange(startRow,1,numRows,8)
//获取范围中每行的值。
var data=dataRange.getValues();
对于(变量i=0;i
我能够通过将一个或多个空字符串作为参数传递给createContact()方法来重现错误:

通过记录数据数组中的值来检查它们,看看是否有空字符串。您可以将代码包装在try块中,以防止错误停止程序执行。任何错误都将记录在catch块中

try {
var contact = ContactsApp.createContact(a, b, c);

}

catch(error) {

Logger.log(error);

}

我看到您正在尝试将电子表格连接到Google表单。检查

应用程序脚本允许您将谷歌表单与谷歌工作表连接起来 通过表单和电子表格服务。此功能可以自动 根据电子表格中的数据创建Google表单。应用程序脚本也 使您能够使用触发器(如onFormSubmit)执行 用户响应表单后的特定操作

您可能指的是
onFormSubmit


以下是您的参考信息。

您在哪一行遇到了哪些错误?您是如何设置触发器的?服务错误:ContactsApp:[第1行,第384列,元素gd:givenName]缺少所需的文本内容(第22行,文件“代码”)……这是我收到的错误。我正在使用表单提交触发器。我通过链接表单使其工作。但是联系人被添加到谷歌联系人的“其他”组中,有没有办法直接添加到“我的联系人”中?谢谢您的支持。当我只在电子表格中使用它并更新数据时,它就起作用了。但我无法将其添加到表单电子表格中。我测试了表单中链接到表单的所有内容。1) 确保表单已正确链接到工作表。尝试创建另一个表单和工作表2)确保至少从脚本编辑器手动运行该函数一次,以向脚本授予所有必需的权限。如果您不明确允许脚本访问您的联系人,脚本将不会运行。
var contact = ContactsApp.createContact("", "", "");
try {
var contact = ContactsApp.createContact(a, b, c);

}

catch(error) {

Logger.log(error);

}