首页 > 解决方案 > Bot Hangouts Chat API - 无法在 ROOM 中工作

问题描述

我有一个简单的机器人,可以识别标签“@Ticket”并发送电子邮件。

我在 DM 中的 Bot 可以工作,但是当我将 bot 加入房间时,它不起作用。

Hangouts Chat API 功能 - 聊天室中的聊天机器人和直接消息中的聊天机器人已启用

我的代码是:

function onMessage(event) {
    console.info(event);
    var name = "";

    if (event.space.type == "DM") {
        name = "You open:";
    } else {
        name = event.message.sender.displayName + " open:";
    }

    var message = name + event.message.text.toUpperCase() + "\"";

    if (message) {
         if (message.indexOf('@Ticket') > -1) {
            MailApp.sendEmail("email-account", name + "ticket", message);
         }
    }

}


function onAddToSpace(event) {
    console.info(event);
    var message = "";

    if (event.space.type == "DM") {
        message = "Tickets in DM, " + event.user.displayName + "!";
    } else {
       eturn { "text": message }; message = "Tickets add to " + event.space.displayName;
    }            
}

    function onRemoveFromSpace(event) {
        console.info("Tickets removed ", event.space.name);
}

有人能帮我吗?谢谢

标签: botshangouthangouts-chatgoogle-hangouts

解决方案


我调试了机器人,我注意到当机器人是房间的成员时,发送的消息不会生成任何事件。

DM 中生成的事件

jsonPayload: {
      configCompleteRedirectUrl:  
           "https://chat.google.com/api/bot_config_complete?token=XXXXXX"   
      eventTime: {…}   
      message: {
      argumentText:  "@Ticket: Open"    
      createTime: {…}    
      name:  "spaces/XXXXXX/messages/XXX.XXX"    
      sender: {…}    
      space: {…}    
      text:  "@Ticket: Open"    
      thread: {…}  

在 ROOM 中生成的事件

  No logs are found  

在 API 参考中,我们有事件字段:

事件字段

我不知道机器人是否是房间的成员,是否可以识别房间中生成的所有事件(event.message.text),或者是否真的有必要单击机器人并启动事件所需的 DM (event.message.text) 被识别。


推荐阅读