google-apps-script - 使用应用程序脚本从谷歌表格中删除电子邮件时如何从谷歌联系人中删除联系信息
问题描述
我正在开发一个应用程序脚本,该脚本将联系信息(姓名和电子邮件)从谷歌表写入谷歌联系人。
google sheet 上有 3 列,第一列是时间戳,第二列是电子邮件,第三列是名称。
应用程序脚本可以将联系人添加到谷歌联系人,但是,我希望当从谷歌表中删除任何电子邮件时,在谷歌表更新/编辑时,该联系人信息也会从谷歌联系人中删除。我尝试了一些,但卡住了,无法成功。我是 Apps 脚本的新手。
如果帮助我编写脚本,我将不胜感激。
这是我得到的:
function AddToGoogleContacts() {
var sheet = SpreadsheetApp.getActive().getSheetByName("sheet1");
for (var i = 0; i < sheet.getLastRow()-1; i++) {
var contactEmail = sheet.getRange(i+2,2,1,2).getValue();
var myContact = ContactsApp.getContact(contactEmail);
if (myContact === null){ ContactsApp.createContact(sheet.getRange(i+2,3,1,2).getValue(),"",sheet.getRange(i+2,2,1,2).getValue());
}
}
}
解决方案
function delGoogleContact(email) {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("sheet1");
const vs = sh.getRange(2,1,sh.getLastRow()-1,3).getValues();
vs.forEach((r,i)=>{
if(r[1]==email){
ContactsApp.deleteContact(ContactsApp.getContact(email));
}
});
}
推荐阅读
- groovy - Groovy 包含新的 Groovy 脚本
- typescript - Vue2 - 使用外部第三方组件作为子组件
- excel - 将某些行中的单元格有条件地合并到 Excel 中的一个单元格中
- android - 在 BaseViewModel 中注入依赖项
- python - 从另一列的统计数据中绘制大小类
- c++ - VS Code C++ Intellisense 在#include 行之后很慢
- spring - 如何检查当前环境是spring容器?
- scala - 运行多个用户时出现 Gatling 错误 - “httpRequest-2”未能执行:未定义名为“access_token”的属性
- sql - 通过将值移动到新列来合并准重复行
- php - Laravel 5.8 | FullCalendar 在日历上显示事件