我已经通过AppsScript构建了我的第一个聊天机器人,它很棒。
我坚持使用的用例是“获取有关同事的信息”。
以下代码可以使用,但联系人没有任何电话号码。好吧,不是在本地用户“联系人”,而是在公司目录中。对于用户来说,有一些很大的API,我不知道是否可以在另一个用户调用该函数时获得授权。
var contacts = ContactsApp.getContactsByName("Firstname Lastname");
var phoneFields = contacts[0].getPhones();
var widgets = [{
"buttons": [{
"imageButton": {
"icon": "EMAIL",
"onClick": {
"openLink": {
"url": "mailto:"+ contacts[0].getPrimaryEmail()+""
}
}
}
},{
"imageButton": {
"icon": "PHONE",
"onClick": {
"openLink": {
"url": "tel:" + phoneFields[0].getPhoneNumber() +""
}
}
}
}
]
提前致谢
答案 0 :(得分:2)
我显然忘了今天早上按“发布”,6小时后我就解决了。 我在管理员控制下创建一个单独的电子表格来获取目录数据。 设置该电子表格,以便域中的每个人都可以访问它。
if((event.message.text.toLowerCase().indexOf("firstname1") !== -1) || (event.message.text.toLowerCase().indexOf("firstname2") !== -1)){
// Get the sheet
var sheet = SpreadsheetApp.openById("secret-key-from-sheet");
var data = sheet.getActiveSheet().getDataRange().getValues();
var personFound = false;
var i = 0;
// Search for person in document
while (personFound == false) {
if (event.message.text.toLowerCase().indexOf(data[i][0].toLowerCase()) !== -1){
personFound = true
} else {
i++;
}
}
/* List all data you can get
data[i][0]); //First name
data[i][1]); //Last name
data[i][2]); //E-mail
data[i][8]); //Work Phone
data[i][29]); //Custom field
data[i][30]); //Custom field (image)
data[i][31]); //Custom field
*/
//Card
var header = {
"header": {
"title" : data[i][0] +" " +data[i][1],
"subtitle" : data[i][31],
"imageUrl" : data[i][30]
}
}
var widgets = [{
"buttons": [{
"imageButton": {
"icon": "EMAIL",
"onClick": {
"openLink": {
"url": "mailto:" + data[i][2]
}
}
}
},{
"imageButton": {
"icon": "PHONE",
"onClick": {
"openLink": {
"url": "tel:" + data[i][8]
}
}
}
}
]
},{
"keyValue": {
"topLabel": "Custom header for custom data",
"content": data[i][29]
}
}
];
return createCardResponsewithHeader(header, widgets); //this is from Googles example, but I'm passing a custom header instead of using a "Bot"-header.
}