Виджет Сообщения сообществ только для тех, кто может написать

от автора

в

У сообщений сообществ (СС) есть масса преимуществ, начиная от чат-бота до логирования данных через API.

Например: из СС можно выгрузить историю по первому написавшему, чтобы составить график заинтересованности в разных периодах. Вот кусок одного из отчетов:

Добавьте описание
Добавьте описание

Сводя статистику СС со статистикой на предыдущих шагах (переходы с рекламных постов и т.д.) можно отслеживать причинно следственные связи, например: «как повлиял новый формат контента или рекламный креатив на количество новых обращений?»

Мы разобрались в важности направлять трафик в СС.

Если у вас есть сайт, вы можете интегрировать виджет СС, используя Google Tag Manager.

Т.к. у многих мобильных браузеров блокируются cookies, то виджет сообщения сообществ будет бесконечно предлагать авторизоваться:

Виджет Сообщения сообществ только для тех, кто может написать, изображение №2

У ВК есть 3 инструкции по виджету сообщения сообществ:
https://dev.vk.com/ru/widgets/group
https://vk.com/dev/CommunityMessages
https://dev.vk.com/ru/widgets/community-messages
Во всех 3 инструкциях есть конструктор виджета.
Только в последней инструкции прописан способ проверки: может ли пользователь написать. Но в конструкторе обработки нет.

Исправим

Код подключения к ВК. Он требуется, если у вас еще не настроено подключение(например, не установлен пиксель):

<script type="text/javascript" src="https://vk.com/js/api/openapi.js?169">

Измененный код с комментариями:

</script> // <div id="vk_community_messages"></div>
<script type="text/javascript">
  VK.Widgets.CommunityMessages("vk_community_messages", {{VK Widget ID Member}}, {
tooltipButtonText: {{VK Widget ID Member Text}}, disableExpandChatSound: 1, // отключаем звуки виджета disableNewMessagesSound: 1, // отключаем звуки виджета expandTimeout: 30000, // Раскрываем виджет через 30 сек. onCanNotWrite: function(reason) { // Далее проверка, может ли писать пользователь и удаление виджета, если не может: if (reason === "offline" || reason === "no_access" || reason === "disabled_messages" || reason === "cant_write") { var widgetContainer = document.getElementById("vk_community_messages"); if (widgetContainer) { widgetContainer.innerHTML = ""; // Удаление содержимого контейнера } } } }); </script>