自动将 Google 联系人数据导出到 Google 工作表
automatically export Google Contacts data to Google Sheets
我想从我的 Google 联系人中自动获取联系信息并将其显示在 Google 表格电子表格中。
我使用了以下代码来获取和显示全名
`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);
}`
这可以正常工作并且 return 组中的所有名称都标记为 "Guides"
我也想 return 电子邮件地址。当我将相同的代码与 .getEmails 而不是 .getFullName 一起使用时,它 return 是电子邮件字段而不是我想要的字符串。
我已经尝试 .getEmails(ContactsApp.Field.HOME_EMAIL);
和 .getAddress()
如下,但它不起作用。我收到错误
Cannot find function getAddress in object EmailField.
`function getAddress(){
var group = ContactsApp.getContactGroup('GUIDES');
var contact = group.getContacts(),output = [];
for(var i = 0, iLen = contact.length; i < iLen; i++) {
var addresses = contact[i].getEmails(ContactsApp.Field.HOME_EMAIL);
if(addresses) {
output.push([addresses.getAddress()]);
} else {
continue;
}
}
SpreadsheetApp.getActiveSheet().getRange(4, 4, output.length, 1).setValues(output);
}
`
我希望显示字段的电子邮件地址,而不是字段本身。
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();
参考文献:
如果我误解了您的问题而这不是您想要的结果,我深表歉意。
我想从我的 Google 联系人中自动获取联系信息并将其显示在 Google 表格电子表格中。
我使用了以下代码来获取和显示全名
`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);
}`
这可以正常工作并且 return 组中的所有名称都标记为 "Guides"
我也想 return 电子邮件地址。当我将相同的代码与 .getEmails 而不是 .getFullName 一起使用时,它 return 是电子邮件字段而不是我想要的字符串。
我已经尝试 .getEmails(ContactsApp.Field.HOME_EMAIL);
和 .getAddress()
如下,但它不起作用。我收到错误
Cannot find function getAddress in object EmailField.
`function getAddress(){
var group = ContactsApp.getContactGroup('GUIDES');
var contact = group.getContacts(),output = [];
for(var i = 0, iLen = contact.length; i < iLen; i++) {
var addresses = contact[i].getEmails(ContactsApp.Field.HOME_EMAIL);
if(addresses) {
output.push([addresses.getAddress()]);
} else {
continue;
}
}
SpreadsheetApp.getActiveSheet().getRange(4, 4, output.length, 1).setValues(output);
}
`
我希望显示字段的电子邮件地址,而不是字段本身。
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();
参考文献:
如果我误解了您的问题而这不是您想要的结果,我深表歉意。