async def message_handler(self, data):
message = self.build_message(data)<EOL>if not message:<EOL><INDENT>logger.error(<EOL>'<STR_LIT>',<EOL>self.engine_name,<EOL>data<EOL>)<EOL>return<EOL><DEDENT>logger.info('<STR_LIT>', self.engine_name,<EOL>message.user, message.text)<EOL>response = await self.get_response(message)<EOL>if response:<EOL><INDENT>await self.send_response(response)<EOL><DEDENT>
For each new message, build its platform specific message
object and get a response.