Google apps script 更新联系人的问题

Google apps script 更新联系人的问题,google-apps-script,Google Apps Script,我正在尝试为google sheets编写一个更新联系人的函数 到目前为止,该函数获取目标联系人,但当我尝试进行更新时,什么也没有发生。 我在contacts下查找,并且ContactsPP.getContacts()反映了运行时数据未更改 function editContact() { //get highlighted (active) cell data and first cell in its row(id) var ss = SpreadsheetApp.getAc

我正在尝试为google sheets编写一个更新联系人的函数

到目前为止,该函数获取目标联系人,但当我尝试进行更新时,什么也没有发生。 我在contacts下查找,并且
ContactsPP.getContacts()
反映了运行时数据未更改

function editContact() {
    //get highlighted (active) cell data and first cell in its row(id)
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();
    var aCell = sheet.getActiveCell();
    var id = grabId(aCell)

    var strArray = [];
    //fetch contact
    var contact = ContactsApp.getContactById(id);//works
    contact.setFamilyName('Doe-Smith');//does NOT work
    var contactName = contact.getFullName();//grabs old unaffected name
    strArray.push("contact", contactName);

    var title = "Target cell info"
    var str = stringMaker(strArray)

    showOutputBox(str, title);
}

我根本看不出有什么差错。
非常感谢您在这件事上的帮助。

看来该方法毕竟有效,但在我手动编辑受影响的联系人之前,不会反映在contacts.google.com中

90%的人肯定他们会证明我是个傻瓜,但10%的人肯定我是对的,这确实是个错误


问题似乎与错误引导有关,它指出

getFullName()
获取 以字符串形式联系

实际上,
FullName
指的是谷歌联系人中的显示名

请尝试以下代码:

  Logger.log('given: '+contact.getGivenName());
  Logger.log('last: '+contact.getFamilyName());
  Logger.log('family: '+contact.getFullName());
  contact.setGivenName('Joe');
  contact.setFamilyName('Doe-Smith');
  contact.setFullName('Testname');
  Logger.log('given: '+contact.getGivenName());
  Logger.log('last: '+contact.getFamilyName());
  Logger.log('family: '+contact.getFullName());
您将看到这三个参数都已更改,但
FullName
是一个独立的参数,而不是给定名称和族名称的组合


因此,作为一种解决办法,目前您需要分别设置和获取姓名和姓氏。

我已经向谷歌提交了一份报告,希望能够解决这个问题。。非常感谢。这确实是我想要的解决方案。很高兴听到它有帮助!