bots - 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);
}
有人能帮我吗?谢谢
解决方案
我调试了机器人,我注意到当机器人是房间的成员时,发送的消息不会生成任何事件。
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) 被识别。
推荐阅读
- gitlab - linux shell gitlab-runner 如何访问 vpn 后面的服务器?
- linux - 如何从bash(脚本)通过串口发送asci和非asci字符
- php - 获取哪个mysql的列的总和
- powershell - 如何在 Hyper-V 中使用 Powershell 删除特定快照
- python - Python - OS High Sierra - NSPlaceholderDate 错误
- f# - F# 中的“和”关键字
- java - 在Android中的两个活动之间切换时更改布局中的可见性TextView
- javascript - request.FILES 返回 InMemoryUploadedFile
- html - 垂直对齐的内容
- amazon-web-services - 如何获取现有的 s3 存储桶(子目录)?