Вступление
Друзья, приветствую!
Как-то я рассказывал вам про сервис моментальной чистки комментов AFP.Monster, главной особенностью которого является возможность обрабатывать комментарии МОМЕНТАЛЬНО, как только их оставляют у вас под постами. Теперь же я покажу вам, как всё это работает под капотом, а заодно дам вам бесплатный аналог AFP.Monster.
DISCLAIMER
- это технически сложная статья, есть много мелкой возни, в которой желательно разбираться. И хотя я постарался донести всё максимально разжёвано — возможно, у вас ничего не получится, имейте в виду.
- проделывайте все нижеописанные операции ТОЛЬКО если вам нужен какой-то кастом, или у вас мало денег, или вы просто любопытны. Во всех прочих случаях следует плюнуть на всё это и использовать AFP.Monster. Там всё сделано для людей, и можно сосредоточиться на воронке, а не на техничке.
- прила, которую мы с вами настроим — будет работать только для одного акка фб. Новый акк? Вам придётся сделать всё с самого начала. Да, вы можете попробовать это автоматизировать, вопросов нет. Но в целом рекомендую использовать этот метод на акках-хранилищах ФПшек. Таким макаром вы быстренько сможете получать токены от фпшек и подключать их в систему.
А теперь поехали!
Что нам понадобится?
Любой домен с хостингом, куда можно закинуть вот эти PHP-файлы, с версией PHP от 8.2 и выше. С хостинга должен быть доступ к Facebook! Т.е. Beget на этот раз не подойдёт, пользуйтесь, например, FriendHosting. Также нужен SSL-сертификат, т.е. чтобы работал https.
WebHooks
Итак, основной фишкой, при помощи которой возможна моментальная очистка — это вебхуки, т.е. по сути — уведомления о произошедших событиях. Фэбэ может любезно уведомить наш скрипт о том, что на объяве появился новый коммент. Ну збс же?
Давайте создадим приложение, которое будет использовать эту фичу. Как создавать прилу описано вот в этой статье в разделе «Регистрация приложения«, а я начну с того шага, когда всё уже зарегано и создано.
Для того, чтобы наше приложение получало реальные данные из фб, нужно перевести его в режим Live.

Появится окно с предупреждением, что прежде чем включить Live режим, вам нужно указать урл политики приватности. Я предоставляю её вместе со скриптом в файле policy.html. Если, вдруг, перестанет прокатывать — сгенерируйте любую другую политику.

Я указываю эту политику также в поле Terms of Service.

Теперь нам нужно получить токен, чтобы иметь возможность добавлять в софт фпшки, на которых мы хотим обрабатывать комментарии. Для этого переходим в верхнем меню Tools — Graph Api Explorer.
Выбираем в выпадающем меню Meta App нашу прилу. В меню User or Page — ставим User или Get Token. А в нижнем меню Permissions выбираем все разрешения, начинающиеся с pages_manage, pages_read и pages_show_list.

После этого жмём большую синюю кнопку Generate Access Token.

Появится отдельное окно где мы выбраем пункт с доступом ко всем текущим и будущим страницам.

Проходим этот квест до конца и возвращаемся в наш Graph Explorer.
Итак, у нас есть токен! Но у него оооочень небольшое время жизни, нам надо его продлить так, чтобы он работал несколько месяцев и не парил нам мозг! Для продления копируем токен, после чего идём в Tools — Access Token Debugger и пихаем туда токен.

Видим, что у токена есть все нужные права, а также то, что токен сдохнет через час. Поэтому скроллим до самого низа и тыкаем на кнопку Extend Access Token.

У вас попросят пароль и выдадут новый токен со сроком жизни в 2 месяца.

Сохраняем его себе (его будем добавлять в наш софт).
ИИИИИ, на этом с настройкой внутри фб ВСЁ, фуххх!
Настраиваем саму систему
Перво-наперво нужно открыть для редактирования файл settings.php и поменять там:
- админский пароль с qwerty на что-то более подходящее
- имя БД с comments.db на что-то более длинное и менее очевидно. В этой базе будут храниться токены от фпшек, поэтому нежелательно, чтобы кто-то имел возможность её выкачать. Символов 20-25 в названии будет норм.
- желательно включить режим отладки, т.е. $debug = true; Тогда при ошибках или успешных действиях система будет показывать дополнительные сообщения. После того, как всё настроено, этот режим можно выключить: $debug = false;
Далее заходим на index.php и логинимся в админку, используя предварительно установленный пароль. Видим следующий интерфейс:

Сверху кнопка просмотра логов и выход из системы, слева меню с Приложениями, Страницами, Очисткой и Автоответом.
Сначала нужно добавить то приложение, что мы создали в Developers Facebook. Для этого понадобится токен от ПРИЛОЖЕНИЯ. Получить его проще всего в том же Graph API Explorer, выбрав нашу прилу и поставив App Token, как на скрине.

Получили? Отлично, добавляем в софт кнопкой Add App and Subscribe.

Далее переходим на страницу Pages и вставляем туда уже наш User токен, который мы создавали и продлевали в предыдущих шагах. После чего жмём Fetch.

Выделяем и добавляем нужные вам страницы. Переходим в пункт Cleaner и включаем обработку комментариев. Там же можно выбрать режим работы: удаление или скрытие, плюс есть возможность удалить ВЕСЬ контент страницы, то есть все посты и фото. Хорошо работает для старых страниц «с историей«, которые требуется переделать под новые офферы.

В пункте Replies можно написать через запятую список слов, в ответ на которые от лица ФП будет опубликован автоответ с нужным текстом и, при необходимости, картинкой.

Пользуйтесь на здоровье, а на сегодня у меня для вас всё, лейте в плюс, господа!
P.S. И ещё раз: настоятельно рекомендую вам, прежде чем вы полезете ковыряться со скриптом, ЧЕКНИТЕ СЕРВИС AFP.Monster, там всё это УЖЕ есть, и не нужно ничего настраивать.
P.P.S. Если у вас что-то не получается — смотрите ЛОГИ, в папке logs либо непосредственно в интерфейсе, нажав кнопку LogViewer в правом верхнем углу. И уже с логами можете попробовать постучаться ко мне в ЛС.





спасибо за софт, но не могу зайти на index.php http error 500 ошибка, попробовал зайти на login.php Там все ок но дальше кидает на admin.php и там тоже ошибка 500, можешь подсказать пж что не так сделал, там вроде ошибиться нельзя было при заливе файлов на хост 😅
Для начала можно включить debug=true в settings.php и посмотреть реальную ошибку, что напишет. Если не удастся решить — пиши в тг @dvygolov
спасибо за подсказку, у меня был не установлен SQLite3 на сервере поэтому все падало, установил и все заработало спасибо большое
отлично, рад слышать!
и можешь пожалуйста подсказать по каким правилам фильтруются коммментарии? всмысле удаление/скрытие происходит исходя из каких слов? их нужно где-то задавать самому или уже есть база в файлах?
нет никаких правил, удаляются/скрываются абсолютно ВСЕ комментарии, если только в комментарии нету триггерных слов. Если слова найдены — то публикуется ответ от имени фп и коммент остаётся.
Спасибо за софт! Установил всё на выделенный сервер, сделал всё как в статье, установил нужные библиотеки php, sqlite на сервер.
Но не удаляются комментарии. При включённом логированнии, в Log Viewer падает информация [11:27:26] [Info] Got New Comment: {…
Но больше ничего не пишет, ни ошибок доступа, ни ошибок FBAPI. Просто чисто страница только с событиями Got New Comment.
Есть какие-то предположения/советы, что может помочь?
напишите мне в тг @dvygolov и скиньте лог-файл сам, посмотрим, что у вас там
указываю ссылку и токен и выдает следующую ошибку. в чем может быть дело?
The callback URL or verify token couldn’t be validated. Please verify the provided information or try again later.
а сам по ссылке переходить пробовал, ссылка рабочая?
по ссылке index.php не открывается «HTTP ERROR 500»
в терминале ввожу sudo php -f /var/www/html/comments/index.php и выдает следующую ошибку
«No entry for terminal type «unknown»;
using dumb terminal settings.
PHP Parse error: syntax error, unexpected ‘.’, expecting ‘,’ or ‘;’ in /var/www/html/comments/logger.php on line 5″
Какая у вас версия PHP на сервере?
PHP 5.4.16
А нужна от 7.4 или выше
обновл php до 8.2, по ссылки index.php по прежнему не открывается «HTTP ERROR 500».
закидывал тестовый пхп (?php
header(‘Content-Type: text/html; charset=UTF-8’);
echo ‘WORKS!’;) он открывается по ссылке.
другие же php файлы из архива не открываются (policy.html открывается по ссылке).
все права выданы корректно, уже хз что еще нужно
поставьте 7.4
Все заработало, большое спасибо за терпение и ответы
AFP.Monster здох сервис или еще будет работать? Может есть какая-то информация? Уже месяц не удаляєт коментарии (
вроде работал, уточню и вернусь
уточнил — всё работает
Почему то, софт ловит комментарии в логе (12:35:04] [Info] Got New Comment:) , но не скрывает/удаляет.
на вкладке Cleaner у нужной фп включите, собственно очистку, тумблер перещёлкните
обновил php до 8.2 и выдает следующую ошибку
Warning: mkdir(): Permission denied in /var/www/html/comnew/logger.php on line 10
Warning: file_put_contents(/var/www/html/comnew/logs/2025-10-11.log): Failed to open stream: No such file or directory in /var/www/html/comnew/logger.php on line 33
[10:00:49] [Error] An error occurred: Unable to open database: unable to open database file
прав на запись нет в папку, раздай на свой comnew права, типа chmod 777 comnew
пофиксил, работает, спасибо.
Но почему то не хочет добавлять приложение «Failed to subscribe app. Please check the app token.» токен приложения полностью копирую и ошибка. создал новое приложение с вебхуками и аналогичная ошибка
[Error] Facebook API error in method ‘subscribe_app’: (#2200) Callback verification failed with the following errors: HTTP Status Code = 404; HTTP Message = Not Found (Type: OAuthException, Code: 2200)
Домен привязан? сертификат для https добавлен?
«Домен привязан? сертификат для https добавлен?»
да, привязан и ссл стоит. я пользовался прошлой версией твоего софта, просто обновил php до 8.2