Dart中的Google聊天:从移动应用添加聊天机器人后,外部托管的聊天机器人不会收到ADDED_TO_SPACE事件

时间:2019-10-25 13:46:56

标签: mobile dart google-cloud-platform google-api hangouts-chat

我正在开发一个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配置的屏幕截图:

Google Cloud configuration

0 个答案:

没有答案