Я разрабатываю чат-чат Google Chat, который размещается на внешнем сервере с использованием http-сервера Dart, с которым общаются через Google Cloud. При добавлении чат-бота в DM вашего чата Google (допускается только DM), чат-бот должен отправить приветственное сообщение, предоставляя пользователю выбор локали. Оттуда пользователь может задавать вопросы чат-боту относительно контекста приложения.
Все идет хорошо. Чатбот теперь работает и может быть добавлен из веб-интерфейса Google Chat с помощью события ADDED_TO_SPACE . Затем чатбот запрашивает локаль, и все идет как положено. Также при доступе к чат-боту из приложения Google Chat далее. Однако при попытке добавить чат-робота из мобильного приложения Google Chat (в моем случае, Android) чат-робот остается тихим.
Я отладил эту проблему, посмотрев на событие, которое появляется при добавлении чат-робота с мобильного телефона. ,Тем не менее, кажется, что при добавлении бота с мобильного интерфейса событие вообще не происходит. Это проблема с настройкой внешнего сервера и / или конфигурацией 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: