0

我已经通过 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() +""
                  }
              }
            }
            }
            ]

提前致谢

4

1 回答 1

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.
}
于 2018-03-07T15:09:33.427 回答