Google app maker Google App Maker如何从Google联系人创建数据源

Google app maker Google App Maker如何从Google联系人创建数据源,google-app-maker,Google App Maker,使用GoogleAppMaker如何从google联系人创建数据源。有一个员工人力资源示例应用程序,但我希望类似地管理联系人(添加、修改、删除)并使用选择标准。目前,这项任务在app Maker中并不简单,而且非常通用。我们可以使用第三方数据源将问题措辞更改为CRUD操作。让我们把它分成几个小部分,分别处理 读取/列出联系人 这项任务相对容易。您需要使用代理响应。使用响应中的字段子集创建模型后,可以为模型创建数据源,并将其绑定到列表或表小部件。你也可以试着从中找到一些灵感 //服务器端脚本

使用GoogleAppMaker如何从google联系人创建数据源。有一个员工人力资源示例应用程序,但我希望类似地管理联系人(添加、修改、删除)并使用选择标准。

目前,这项任务在app Maker中并不简单,而且非常通用。我们可以使用第三方数据源将问题措辞更改为
CRUD操作
。让我们把它分成几个小部分,分别处理

读取/列出联系人

这项任务相对容易。您需要使用代理响应。使用响应中的字段子集创建模型后,可以为模型创建数据源,并将其绑定到列表或表小部件。你也可以试着从中找到一些灵感

//服务器端脚本
函数getContacts_uz(){
var contacts=ContactsApp.getContacts();
var记录=contacts.map(函数(contact){
var record=app.models.Contact.newRecord();
record.FirstName=contact.getGivenName();
record.LastName=contact.getFamilyName();
var companys=contact.getcompanys();
如果(公司长度>0){
var公司=公司[0];
record.Organization=company.getCompanyName();
record.Title=company.getJobTitle();
}
var emails=contact.getEmails();
如果(电子邮件长度>0){
record.Email=电子邮件[0]。getAddress();
}
var phones=contact.getPhones();
如果(电话长度>0){
record.Phone=phones[0]。getPhoneNumber();
}
返回记录;
});
退货记录;
}
创建/更新/删除

由于计算模型有一些缺陷,我们需要利用我们的想象力从它们的数据源中创建、更新和删除记录。基本策略是CUD操作响应客户端的用户操作。要从UI获取用户输入,我们需要利用页面,每个联系人字段有一个属性:

这里有一些片段可以解释这个想法

创建

//客户端脚本
SubmitContactClick功能(submitButton){
var props=submitButton.root.properties;
var触点={
名字:props.FirstName,
LastName:props.LastName,
组织:道具,组织,
...
};
google.script.run
.withSuccessHandler(函数(){
//我们很可能需要将用户导航回
//带有联系人列表的页面并重新加载其数据源
//反映最近的变化,因为我们的“CUD”业务
//与列表数据源完全分离
app.showPage(app.pages.Contacts);
app.datasources.Contacts.load();
})
.withFailureHandler(函数(){
//TODO:句柄错误
})
.createContact(contact);
}
//服务器脚本
函数createContact(contactDraft){
var contact=ContactsApp.createContact(contactDraft.FirsName,
contactDraft.LastName,
联系人(草稿、电子邮件);
contact.addCompany(contactDraft.Organization,contactDraft.Title);
contact.addPhone(ContactsApp.Field.WORK\u PHONE,contactDraft.PHONE);
}
更新

更新联系人记录的想法将非常类似于新的联系人创建流程,所以我现在跳过它

删除

假设删除按钮位于contacts表行内

//客户端脚本
功能onDeleteContactClick(删除按钮){
var email=deleteButton.datasource.item.email;
google.script.run
.withSuccessHandler(函数(){
//要更新联系人列表,我们可以重新加载整个
//datasource或显式删除客户端上的已删除项。
//第二种选择会更快。
var contactIndex=deleteButton.parent.childIndex;
附录.数据源.触点.项目.拼接(触点索引,1);
})
.withFailureHandler(函数(){
//TODO:句柄错误
})
.删除联系人(contact);
}
//服务器脚本
功能删除联系人(电子邮件){
var contact=ContactsApp.getContact(电子邮件);
ContactsPP.deleteContact(触点);
}

您应该编辑您的问题,将其包括在内,以便为我们提供可靠的解决方案。让我们知道你已经尝试过的任何事情,你遇到的任何问题,以及你能想到的任何有助于说明你的问题的事情。你能提供的信息越多,我们就能更好地帮助你。