我在Apps脚本中设置Google通讯录中的“生日”字段时遇到问题。我有一个带有“用户的出生日期”字段的表单,并且在接收电子表格的FormSubmit上调用了我的代码。看起来像这样:
// h/t @tehhowch for this mapping solution
var months = ContactsApp.Month;
var monthToEnum = {
1: months.JANUARY,
2: months.FEBRUARY,
3: months.MARCH,
...,
12: months.DECEMBER
};
// get the date from the event parameter e
var d = new Date(e.namedValues["User's Date of Birth"]);
var birthdayMonth = d.getMonth()+1; // getMonth() returns offset 0
var birthdayDay = d.getDate();
var birthdayYear = d.getFullYear();
var monthEnum = monthToEnum[birthdayMonth];
Logger.log("Birthday: " + birthdayMonth + "/" + birthdayDay
+ "/" + birthdayYear + " and " + monthEnum);
contact.addDate(ContactsApp.Field.BIRTHDAY, monthEnum,
birthdayDay, birthdayYear);
Logger.log("formSubmittedSheetNewPatient: contact Birthday = "
+ contact.getDates(ContactsApp.Field.BIRTHDAY)[0].getMonth());
第一个日志正确显示为“ Birthday: 2/21/1912 and FEBRUARY
”,第二个日志为“ contact Birthday = FEBRUARY
”,因此代码有效。然后,我将新联系人添加到现有组中。但是,当我在Google通讯录中查看新联系人时,默认的内置“生日”字段为空,没有其他“生日”字段。我在新联系人中设置的所有其他字段都在那里。有人看到我在做什么错吗,或者“联系生日”字段代码中有错误?