docs: def post(self, request, hook_id):
          """
          Process Messenger webhook.
              1. Get an enabled Messenger bot
              3. For each message serialize
              4. For each message create :class:`MessengerMessage <permabots.models.messenger_api.MessengerMessage>`
              5. Delay processing of each message to a task      
              6. Response provider
          """
          try:
              bot = caching.get_or_set(MessengerBot, hook_id)
          except MessengerBot.DoesNotExist:
              logger.warning("Hook id %s not associated to a bot" % hook_id)
              return Response(status=status.HTTP_404_NOT_FOUND)
          logger.debug("Messenger Bot %s attending request %s" % (bot, request.data))
          webhook = Webhook.from_json(request.data)
          for webhook_entry in webhook.entries:
              for webhook_message in webhook_entry.messaging:
                  try:
                      if webhook_message.is_delivery:
                          raise OnlyTextMessages
                      message = self.create_message(webhook_message, bot)
                      if bot.enabled:
                          logger.debug("Messenger Bot %s attending request %s" % (bot, message))
                          handle_messenger_message.delay(message.id, bot.id)
                      else:
                          logger.error("Message %s ignored by disabled bot %s" % (message, bot))
                  except OnlyTextMessages:
                      logger.warning("Not text message %s for bot %s" % (message, hook_id))
                  except:
                      exc_info = sys.exc_info()
                      traceback.print_exception(*exc_info)                
                      logger.error("Error processing %s for bot %s" % (webhook_message, hook_id))
                      return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)
          return Response(status=status.HTTP_200_OK)