首页 > 解决方案 > 从 Apps 脚本设置时,Google 联系人“生日”字段未显示

问题描述

我在 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 通讯录中查看新联系人时,默认的内置生日字段为空,并且没有其他生日字段。我在新联系人中设置的所有其他字段都在那里。有没有人看到我做错了什么,或者联系人生日字段代码中是否有错误?

标签: javascriptgoogle-apps-scriptgoogle-contacts-api

解决方案


推荐阅读