我正在开发一个Google Chat聊天机器人,该机器人使用Dart http服务器托管在外部服务器上,并通过Google Cloud与之通信。在将聊天机器人添加到您的Google聊天DM(仅允许DM)时,聊天机器人应发送一条欢迎消息,为用户提供区域设置的选择。从那里,用户可以向聊天机器人询问有关应用程序上下文的问题。
一切顺利。聊天机器人现在正在运行,可以使用Google Chat web interface事件从ADDED_TO_SPACE添加。然后,聊天机器人会要求提供语言环境以及所有预期的收益。同样,当接下来从Google聊天应用访问聊天机器人时。但是,当尝试从Google Chat移动应用(以Android为例)添加聊天机器人时,聊天机器人将保持沉默。
我通过查看从移动设备添加聊天机器人时出现的事件来调试此问题。但是,从移动界面添加bot似乎完全没有任何事件发生。外部服务器的设置和/或Google Cloud配置是否存在问题?更多的人会遇到这个问题吗?
以下是处理传入事件的代码摘录:
server.listen((request) async {
// Processing the request
switch (request.method) {
case 'POST':
try {
final Space space = Space.fromJson(parsedRequest['space'] as Map);
switch (parsedRequest['type'].toString()) {
case 'ADDED_TO_SPACE': // Initialize chatbot
log('${space.name}',
name: 'GOOGLE|added', time: DateTime.now());
clients[space.name] = GoogleHangoutsChatbot(space, api);
clients[space.name].init();
break;
// Other cases
}
} catch (error) {
log(error.toString(), error: error);
response.statusCode = 500; // Server error
}
break;
default:
response.statusCode = 403; // Method not allowed
}
}
await response.close();
这是我的Google Cloud配置的屏幕截图: