Я бы порекомендовал взглянуть на Пример активных сообщений . Для начала вам необходимо создать контроллер отправки, аналогичный контроллеру уведомлений в примере. Затем вы можете сохранить все ссылки на беседы по идентификатору беседы на стороне бота - в примере есть упрощенный пример того, как это сделать.
Затем закодируйте идентификатор беседы в качестве параметра URL для вашего Messenger WebView. Когда пользователь отправляет форму, вы можете добавить идентификатор запроса в запрос и отправить данные в конечную точку api/submit
, которую вы создали. Как только вы получите запрос, найдите ссылку на разговор с идентификатором, обработайте данные и проактивно отправьте пользователю соответствующее сообщение.
С точки зрения уведомления вашего бота, когда пользователь закрывает WebView, вы можете следовать аналогичному подходу и отправлять HTTP-запрос на контроллер, когда событие unload
инициируется пользователем, удаляющимся от WebView. Для получения более подробной информации, посмотрите документацию MDN .
Надеюсь, это поможет!