自动将Google通讯录数据导出到Google表格

时间:2019-11-18 23:17:12

标签: google-apps-script google-sheets google-contacts-api

我想从我的Google通讯录中自动获取联系人信息,并将其显示在Google表格电子表格中。

我已经使用以下代码来获取和显示fullName

  <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="com.google.intent.category.CARDBOARD" />
      </intent-filter>

这可以正常工作,并返回标记为“指南”的组中的所有名称

我也想返回电子邮件地址。当我对.getEmails而不是.getFullName使用相同的代码时,它将返回电子邮件字段,但不返回我想要的字符串。

我已经尝试使用`function getName() { // Gets the names of everyone in the 'GUIDES' label in Google Contacts var group = ContactsApp.getContactGroup('GUIDES'); var contacts = group.getContacts(), output = []; for(var i = 0, iLen = contacts.length; i < iLen; i++) { var fullname = contacts[i].getFullName(); if(fullname) { output.push([fullname]); } else { continue; } } SpreadsheetApp.getActiveSheet().getRange(4, 3, output.length, 1).setValues(output); }` 来进行.getEmails(ContactsApp.Field.HOME_EMAIL);的操作,但是它不起作用。我收到错误

  

在对象EmailField中找不到函数getAddress。

.getAddress()

我希望显示该字段的电子邮件地址,而不是该字段本身。

1 个答案:

答案 0 :(得分:2)

getEmails()检索的值是一个数组。那修改呢?

修改后的脚本:

修改脚本后,请进行以下修改。

从:
output.push([addresses.getAddress()]);
至:
output.push([addresses.map(function(e) {return e.getAddress()}).join(",")]);

注意:

  • 如果从修改后的脚本中检索到空值,也请尝试进行如下修改。

    • 发件人:

      var addresses = contact[i].getEmails(ContactsApp.Field.HOME_EMAIL);
      
    • 收件人:

      var addresses = contact[i].getEmails();
      

参考文献:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。

相关问题