
В прошлой записи я уже писал о том, как можно реализовать у себя автоответчик для популярных социальных сетей, который будет общаться вместо Вас. Раньше я им активно игрался. Этот русский чат бот для Вконтакте мною использовался для того, чтобы выявить спамера в незнакомом собеседнике и не отвлекаться на его сообщения. Но когда Вконтакте ввело кнопку "Спам" и стало успешно бороться со спамом, надобность автоответчика отпала.
Теперь пришла вторая беда: куча незнакомых людей пытаются втянуть меня в политические дискуссии на тему Украина-Россия-США, которые мне абсолютно не интересны.
Посему захотелось возродить тот автоответчик - пускай он дискуссирует о визитках Яроша, великом комбинаторе Бендере, укропах и американцах, которые хотят нас поссорить. Зачем мне на эту ерунду отвлекаться? Лучше уж верну в строй автоответчик, это более веселое занятие =) Только вот захотелось допилить в нем кое-что, для удобства. И обойтись без установки delphi, да и qip не хотел устанавливать. Потому переписал его на Powershell-скрипте.
Кстати о пользе скрипта: вот пишу сейчас эту запись, а параллельно со скриптом какая-то девушка общается, она уже пять часов выпрашивает у моего скрипта скинуть деньги на телефон, при этом скрипт хитер - и телефон получил, и деньги пообещал скинуть (только не сейчас), и условие поставил: скинет если она, девушка, будет себя хорошо вести. Вот и общаются уже так 5 часов. Собеседница пытается выяснить когда именно и сколько денег скрипт собирается ей скинуть, ну и общается с ним за жизнь, чтобы его не обидеть =)
Помимо самого скрипта нам понадобится:
- База вопросов-ответов - текстовый файл такого же формата, как и в боте реализованном через QIP плагин. В скрипте используется тот же формат базы. Качайте архивы по ссылкам: раз или два и скопируйте в них файл reg.txt
- Сгенерировать токен - ключ, благодаря которому вконтакте поймет что скрипт, это Вы. Для этого, в свою очередь, нужно:
- Создать во вконтакте свое standalone-приложение и скопировать его id.
С базой вопросов-ответов все понятно, идете по ссылкам и качаете одну из тех баз, которыми люди поделились. Рекомендую базу совершенствовать, чем больше в ней будет вопросов и более продуманной ее структура - тем более человеческие диалоги будут получаться. Своей базой я пока не готов делится =) Может потом реализую на сайте api через которое можно будет посылать вопрос и получать ответ из базы.
Генерация токена
По адресу vk.com/editapp?act=create создаем standalone-приложение (под которым будет выступать этот скрипт), название можете вписать любое. При создании приложения вконтакте пошлет Вам на телефон код, который нужно будет ввести.
Далее в созданном приложении переходим на вкладку "настройки" и запоминаем "ID приложения" - оно нам понадобится для генерации токена.
Честно говоря Вам не обязательно создавать свое приложение, достаточно взять ID уже любого, созданного кем угодно приложения. Но есть "Но":
- Оно должно быть standalone-типа: отправка сообщений доступно только Standalone-приложениям.
- Во вконтакте есть ограничение по количеству обращений в секунду с какого-либо приложения. И чтобы несколько пользователей используя одно и то же приложение не уперлось в это ограничение, лучше создать свое приложение.
- Этому приложению будут выданы те права которые вписаны в ссылке получения токена - будьте аккуратны. Лучше создать свое приложение, а не предоставлять чужому какие-либо опасные права
Получили ID приложения? Идем дальше.
Переходим в браузере по такому адресу:
https://oauth.vk.com/authorize?client_id=ТутIDПриложения&scope=offline,messages&redirect_uri=https://oauth.vk.com/blank.html&display=page&v=5.24&response_type=token
Вместо "ТутIDПриложения" указываем ID своего приложения.
"scope=offline,messages" - говорит о том, что токену будет предоставлен:
- оффлайновый доступ (срок действия токена будет бесконечный, не нужно будет раз в сутки получать новый)
- доступ к сообщениям
При переходе по указанному адресу у вас запросят права на:
- Доступ к сообщениям (мы хотим получать и отправлять сообщения )
- Личной информации (всегда запрашивается)
- В любое время (так как токен бессрочный)
Разрешаем.
После чего вы попадете на страницу с текстом:
Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Таким образом Вы можете потерять доступ к Вашему аккаунту.
А в адресной строке браузера будет приблизительно такой адрес:
https://oauth.vk.com/blank.html#access_token=6fd83efcffc00be12345678901234567890123456789a23b7b73a4dc3e7c64ec5914768c8dbddd2d461af&expires_in=0&user_id=24552345
Токен это то, что начинается после "access_token=" и заканчивается перед "&expires_in=". Его и вставляем в скрипт.
Powershell скрипт "Русский чат бот для вконтакте":
#скрипт автответчика для Вконтакте #Автор: elims.org.ua #Данные которые нужно указать: $users_id = 2141,1234234,134156,4525 #id людей, которых игнорировать, то есть с ними скрипт не будет общаться $base_file_path = "C:\Dropbox\QIPBot\reg.txt" #указываем где находится файл с базой вопросов-ответов $token = "6fd83efcffc00be12345678901234567890123456789a23b7b73a4dc3e7c64ec5914768c8dbddd2d461af" #указываем токен function get_message_base { #получаем и конвертируем базу вопросов ответов $message_base_file = Get-Content $base_file_path $global:file_modify = [int][double]::Parse($(Get-Date -date (Get-Item C:\Dropbox\QIPBot\reg.txt).LastWriteTime.ToUniversalTime() -uformat %s)) #дата изменения файла в юникс формате $global:message_base = @{} #создаем пустой ассоциативный массив $global:message_base.matches = @{} $global:message_base.answers = @{} $i = 0 foreach ($line in $message_base_file) { #для каждой строки из файла if ($line -match '^\^.*\$$') { #если нашли правило $global:message_base.matches[$i] = $line #записываем правило в масив $line_j = $line_i+2 #номер строки с которой начинаются ответы на правило $answers_i = 0 #количество ответов на правило $answers = @{} #масив из ответов на определенный вопрос do { #записываем ответы на правило в отдельный масив $answers[$answers_i] = $message_base_file[$line_j] #записываем ответы на определенный вопрос в масив $answers_i++ $line_j++ } while (-not($message_base_file[$line_j+1] -match '^\^.*\$$')-and($line_j -le $message_base_file.count)) $global:message_base.answers[$i] = $answers #записываем масив ответов на определенный вопрос в общий масив ответов $i++ } $line_i++ #номер текущей строки в файле } } get_message_base #получаем id последнего сообщения, на все последующие нужно отвечать: $uri = "https://api.vk.com/method/messages.get?count=1&v=5.24&access_token="+$token $request = Invoke-WebRequest -Uri $uri $response_array = $request.content | ConvertFrom-Json #Конвертируем полученные данные из формата JSON в массив $message_id_last = $response_array.response.items[0].id "id последнего сообщения: " + $message_id_last #Бесконечный цикл, в котором происходит общение: do { $uri = "https://api.vk.com/method/messages.get?count=10&v=5.24&access_token="+$token $request = Invoke-WebRequest -Uri $uri #получили последние 10 входящих сообщений $response_array = $request.content | ConvertFrom-Json #Конвертируем полученные данные из формата JSON в массив $message_id = $response_array.response.items $items_i = $response_array.response.items.count do { #идем в обратном порядке по сообщениям $items_i-- $item = $response_array.response.items[$items_i] #если человек не среди исключенных и сообщение имеет id больше того, после которого нужно отвечать if (-not($users_id -contains $item.user_id )-and($item.id -gt $message_id_last)) { $i = 0 do { #для каждого правила $i++ if ($item.body -match $message_base.matches[$i]) { #проверяем подпадает ли сообщение под правило "Вопрос от " + $item.user_id + " id-сообщения: " + $item.id + " : " + $item.body $maximum = $message_base.answers[$i].count - 1 if ($maximum -gt 0) {$answer_number = Get-Random -minimum 0 -maximum $maximum}else{$answer_number=0} $answer = $message_base.answers[$i][$answer_number] $time_sleep = $answer.length / 5 #смотрим сколько символов в ответе и делим на 5 для имитации скорости печати 5 символов в секунду $time_sleep_i = 0 "Время общего сна: " + $time_sleep do { #задержка для имитирования скорости печати, раз в 10 секунд посылаем запрос, который говорит что идет печать $uri = "https://api.vk.com/method/messages.setActivity?user_id=" + $item.user_id + "&type=typing&v=5.24&access_token="+$token #посылаем процесс набора текста $request = Invoke-WebRequest -Uri $uri if ($time_sleep-$time_sleep_i -ge 10) { "спим 10 секунд" Start-Sleep -s 10 } else { "спим секунд: " + ($time_sleep-$time_sleep_i) Start-Sleep -s ($time_sleep-$time_sleep_i) } $time_sleep_i = $time_sleep_i + 10 } while ($time_sleep_i -lt $time_sleep) "Ответ: $i из " + $message_base.matches.count + " " + $answer if ($i -eq ($message_base.matches.count - 1)) { #сохраняем вопросы на которые не были найдены ответы и подпали под общее правило $item.body | Out-File -Append "C:\Temp\questions-without-answers.txt" -Encoding UTF8 #ответы на эти вопросы можно придумать и добавить в базу } $i = -1 #ответ найден, прерываем дальнейший поиск маски $message_id_last = $item.id #обновляем указатель на последнее отвеченное сообщение #посылаем ответ $uri = "https://api.vk.com/method/messages.send?user_id="+$item.user_id+"&message="+$answer+"&v=5.24&access_token="+$token $request = Invoke-WebRequest -Uri $uri } } while (($i -le $message_base.matches.count-2)-and($i -ne -1)) } } while ($items_i -ge 0 ) $file_modify_check = [int][double]::Parse($(Get-Date -date (Get-Item $base_file_path).LastWriteTime.ToUniversalTime() -uformat %s)) #unix-время последней модификации файла вопросов-ответов if ($file_modify_check -gt $file_modify) {get_message_base} #если база вопросов ответов изменялась, то снова ее считываем $time = [int][double]::Parse($(Get-Date -date (get-date).ToUniversalTime()-uformat %s)) #берем текущее время в юникс-формате и переводит в целое число write-host("$time Следующий запрос будет через 5 секунды. Последнее сообщение $message_id_last") Start-Sleep -s 5 } while ( 1 -eq 1) #бесконечный цикл
В самом начале скрипта, после строки "#Данные которые нужно указать:" указываем свои данные (вместо моих): id-людей с которыми автоответчик не должен общаться, путь к файлу с вопросами-ответами и токен.
Запускаем из командной строки Powershell-скрипт и любуемся его работой =)
P.S.: На всякий случай предупрежу - пользуйтесь аккуратно, без злоупотреблений, все-таки ботоводство нигде не приветствуется.
Прикольная статейка
Меня очень заинтересовала данная тема, и хотелось бы узнать подробное. Но так как я полностью далек от всего этого по технической части, это печально. Но так как я очень люблю всякие соц. эксперименты, разнообразный тролинг и т.д. мне это интересно) Владимир, можно ли вас попросить представить какой-то вариант того как реагирует бот на сообщения (если можно на примере текста с «переписки»)? Каким образом дает ответы и т.д.? Что если во время разговора вопроса в базе нету?
(Я не знаю языков програмирования, поэтому меня интересует более социальная сторона даного творчества)=))
SUNDUK, можешь пообщаться с этой девушкой: https://vk.com/id95991786 =)
Если ответов нет, то присылается случайным образом один из пару сотень вопросов которые я нашел на сервисах типа ask.fm
Пример диалога:
Annette: Привет. Я из Питера, меня зовут Аня, мне 19 лет
Вова: эх молодость…)
Вова: Какая у тебя мечта? У меня — жить где-то на своем красивом райском острове, с домом со всеми удобствами, интернет и тд. и тп) своим причалом с яхтой, небольшим самолетиком, и чтоб все это было автономно) вот)
Annette: Умереть с пользой для человечества
Вова: Для кого?
Annette: Человечества. Даже если эта польза будет маленькой и незначительной. Хочу сделать что то хорошее за свою жизнь, построить церковь, например.
Вова: Обойдемся без примеров.
Annette: А что так? ((
Вова: Да, так. Ничего.
Annette: ?
Вова: ?
Annette: Как ты относишься к политике Порошенко?
Вова: позитивно отношусь) одобряю)
Annette: А Путина?
Вова: На одном сайте встретилось что будучи вице-мэром, Путин через Ленинградское Адмиралтейское объединение организовал продажу подводных лодок за границу. В 1994 году зам. Генерального директора объединения был убит (одна из версий – за отказ осуществить незаконную продажу военного имущества за границу).
Annette: Я не про это. И у него косяки есть. Правда, что у вас говорчт, будто Путин ввёл войска на Украину?
Вова: А про что?
Annette: Правда, что у вас говорчт, будто Путин ввёл войска на
Украину?
(тут я не удержался написал одно сообщение сам):
Вова: как тебя этот вопрос волнует) неужели тебе заплятят за него, что ты так настойчиво его добиваешся)
Annette: ?? Нене, просто нам в новостях об этом вещают
Вова: проще не бывает)
Annette: Я будующий врач) я против войны
Вова: Ну, что же, будь)
Annette: У взрослых такие тяжёлые взгляды на мир…
Вова: такие, это какие?)
Annette: Ты подумал, что мне заплатят? Что там вообще происходит?
Вова: да, мне так показалось)
Annette: Будь проще к русским)
Вова: научи быть проще)
Annette: Как?
Вова: как… как.. а вот так!)
Annette: Ты не думаешь, что это Россия развязала войну?
Вова: не то что думаю, считаю…)
Annette: Да зачем? Зачем?
Вова: А и, правда, зачем?
Annette: Зачем?
Вова: даже не знаю зачем)
Annette: Зачем тогда воевать с братской страной? Просто так?
Вова: Вот и плохо.
Annette: Я думаю это США нас сорит
Вова: Думать это хорошо)
Annette: o_O
Вова: чем или как тебя легче всего обидеть?
Annette: Но наших войск нет
Вова: Никаких «но».
Annette: Наших войск на территории Украины нет. Без «но»
Вова: Самая древняя известная учёным карта, а также самое древнее поселение Homo Sapiens найдены в Украине, в селе Межиречье (не Межигорье) Ровенской области. Им 14,5 – 15 тысяч лет. Карта выбита на кости мамонта, с этого же материала и поселение. Так что Украина — это одна из древнейших населенных територий.
не знал что такие автоответчики есть, попробую воспользоваться
Нда… После примера диалога, прямо на философию пробило. Живешь себе в интернете, думаешь что живешь, но нет — тонешь в море слов… Так и жизнь проходит. Ужас!
Володя, напиши статью, как избавиться от интернет зависимости. Для меня будет актуально :)
Invoke-WebRequest — у меня это не распознаётся PowerShell-ом 2.0…
Надо более свежую версию или что? :(
And, да, вторая слишком древняя. У меня установлена четвертая версия.
Очень заинтересовала статья, пытался повторить, но выдало несколько ошибок:
Имя «Invoke-WebRequest» не распознано как имя командлета, функции, файла скрипта или выполняемой программы.
Имя «ConvertFrom-Json» не распознано как имя командлета, функции, файла скрипта или выполняемой программы.
Не удается индексировать в массив NULL.
Стоит скачать новую версию, или это что-то другое?
Артем, да, установите новую версию PowerShell
Очень здорово! спасибо автору
Можно ли как то заполучить базу девушки блондинки? =)
Кирилл, базу достаточно долго совершенствовал, жалко ее отдавать в паблик. Но если будет достаточное количество желающих людей, смогу сделать что-то вроде api — скрипт к моему сайту или серверу будет посылать фразу на которую нужно ответить, а мой сервер будет отдавать скрипту ответ которым должен ответить автоответчик.
Таким образом и можно будет бесплатно пользоваться актуальной версией моей базы, но при этом я ее в паблик не солью)
Согласен что просто сливать глупо. Просто зная, что есть готовое решение, не хочется заново придумывать велосипед =) Возможно ли её приобрести или обменять? Цели сливать в паблик не преследую…
https://vk.com/genkovich вот контакт для личного общения =) ну или на почту. Буду благодарен
Кирилл, возможен только вариант описанный выше) Хотя все можно купить при большом желании, но… в моем случае цена должна меня удивить и глаза засветиться от жадности) так что вариант с продажей отпадает, так как это не порядок сотень долларов, да и при цене в 1000$ я буду еще колебаться)
Эхх, жаль, жаль =) ну что же, готов в числе первых испытывать API и помогать в развитии бота =) Если, конечно, все будет развиваться…
А возможно ли игнорировать сообщения из бесед вконтакте?
Если кто-то отписался в беседе, болтун считывает это сообщение и начинает отвечать этому пользователю в личные сообщения..
Эдуард, замените строку с
messages.get?count=10&v=5.24&access_token=
на строку
messages.get?count=10&filters=2&v=5.24&access_token=
если общение активное то рекомендую увеличить количество получаемых сообщений за раз с 10 до 100, тогда так:
messages.get?count=100&filters=2&v=5.24&access_token=
Не пойму как пользоваться Powershell, как запустить скрипт..
Андрей, вот тут я писал о том, как запускать Powershell: elims.org.ua/blog/windows-powershell/
Здравствуйте!
Интересует вопрос, возможно ли сделать ответ с цитированием: Боту задают вопрос «что такое коллайдер?» На что бот берёт слово коллайдер и отвечает к примеру «Ну коллайдер это…»
И ещё вопрос, можно ли, что бы при многократном приветствии бот анализировал как то что уже было приветствие и отвечал «Здоровались уже» или чтото в этом роде? Заранее спасибо
Денис, да, конечно можно, если есть навыки программирования =)
Доброго времени суток. Впервые попробовал установить этот автоответчик, раньше с такими вещами не сталкивался, но тема эта заинтересовала. Попробовал установить, запустил и тут же столкнулся с проблемой — бот отвечает пользователям из беседы в личку, указанный выше метод изменения фильтра не помог, по идее это связанно с обновлением версии API:
«5.10
В методе messages.get для параметра filter разрешены только значения 0 (все входящие или все исходящие сообщения, по полю out) или 8 (важные сообщения), остальные значения игнорируются. » (документация ВК)
Вопрос — можно ли как-то по другому запретить боту отвечать на сообщения в беседах?
Александр, добрый день, замените строку:
if (-not($users_id -contains $item.user_id )-and($item.id -gt $message_id_last)) {
На строку:
if (-not($users_id -contains $item.user_id )-and($item.id -gt $message_id_last)-and($item.chat_id -lt 0)) {
Обновил. Часть ошибок уже отсутствуют.
Осталось только это:
Invoke-WebRequest : Невозможно разрешить удаленное имя: ‘httpsmessages.get’
C:\temp\1.ps1:41 знак:13
+ $request = Invoke-WebRequest -Uri $uri #получили последние 10 входящих сообщени …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebEx
ception
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
Не подскажете, что я не так сделал?
Игорь, что у Вас в 44-й строке?
Спасибо. Уже решил проблему.
Заменил httpsmessages.get на https://api.vk.com/method/messages
Бот меня восхитил. :)
Общение Вовы и Аннетт — потрясающее.
Было бы интересно почитать общение ДВУХ ботов о политике и Путине — российского и украинского. Это было бы феерично.
Это шутка, конечно. Мы и так знаем такое общение — его масса по Инету.
==
По теме — изучаю все Ваши наработки. — глаза вот такие: О_О
divadii, спасибо на добром слове =)
Попробовал воспроизвести, но каждый раз ругается, что не может найти путь. Попробовал переместить на рабочий стол — теперь ругается, что не может забайндить аргумент, потому что он ноль.
Luarviq, статья написана для технически подкованных читателей. Какой именно путь не может найти?
Здравствуйте, Владимир я не селен в этом всем, не могли бы вы мне помочь оформить этот бот с помощью Team Viewer , буду очень благодарен
Кто может помочь настроить бот с помощью Team Viewera??
Дмитрий, мое время стоит не дешево, так как у меня большая нагрузка по поставленным задачам. Если Вы готовы за это платить — то могу помочь. Хотя может найдется тот, кто сможет это Вам сможет сделать безвозмездно.
а можно ли сделать так что бы бот писал всем кто только что добавился в друзья «Привет»а там уже дальше развивать разговор ?
Здравствуйте! Помогите пожалуйста решить проблему.. Я не могу разобраться со словарем бота…
Там наприме код:
^(?i)(.*)(лошок)(.*)$
иди нафиг придурок больной
А оно просто игнорирует эту строку, и отвечает непонял… вот фото:
https://pp.vk.me/c628528/v628528587/2c49e/r3OOt-szdVI.jpg
Почему не отвечает на «лошок» — «иди нафиг придурок больной»??
Андрей, я бы сначала устранил ошибку которая присутствует в скриншоте. У меня кстати это правильно нормально на боте отработало.
Владимир, я не совсем понимаю в чём ошибка и что нужно исправилять.. Не поможете мне?
Удалите просто то правило, на которое ругается и посмотрите поможет ли
Никита, да, конечно, можно, если умеете немного программировать =)
выполняется разбор «^(?i)(.*)(((\=)|(\%)\))|(\)\))|O\:\-\)|O\:\)|O\+\)|O\=\)|0\:\-\)|0\:\)|0\+\)|0\=\)|\:\-\)|\:\)|\=
\)|\+\)|\:\-\(|\:\(|\+\(|\=\(|\;\-\)|\;\)|\^\_\~|\:\-P|\:P|\:\-p|\:p|\+Р|\=P|\:\-b|\:b|\+b|\=b|\8\-\)|\8\)|В\)|B\)|\:
\-\D|xD|хР|xp|хd|хp|\:D|\+D|\=D|\:\-\[|\:\[|\;\’\>|\;\-\.|\=\-O|\=O|\=\-o|\=0|O\_O|O\_o|o\_O|O\_0|o\_0|0\_O|0\_o|0o|o
0|0о|о0|\:\-\*|\:\*|\:\-\{\}|\:\{\}|\+\{\}|\=\{\}|\^\.\^|\:\’\(|\:\-\’\(|\:\-Х|\:\-X|х\:|X\:|\:\-\#|\:\#|\>\:o|\>\:O|
\>\+O|\>\:o|\>\+o|\>\=o|\:\-\@|\:\-\||\:\||\=\||\:-\|\:\-\/|\:\\|\:\||\:\/|\8P|\8р|\]\:\-\>|\}\:\-\>|\]\:\>|\}\:\>|\>
\:\-\]|\>\:\]|\[\:\-\}|\[\:\}|\:\-\!|\;\-\!|\:\!|\;\!|\:\-\~|\;\-\~|\@\}\-\>\-\-\|\|\-\0|\@\}\-\:\-\-|\@\>\}\-\-\`\-\
-\-|\@\=|\%\)|\\m\/|\%\)|\%\-\)|\:\$|\=\]|\;\D).{0,}$» — Нераспознанная esc-последовательность \_.
C:\Users\Radilitskiy\Desktop\Разговорный бот для вк.ps1:54 знак:9
+ if ($item.body -match $message_base.matches[$i]) { #проверяем под …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException
Где искать это правило, что собственно удалять? хеееееееееелпп плисс(
В файле с фразами куда пытаетесь добавить свое правило.
Но где именно искать и в какой строке это правило?
Возможно под PS 2 комуто понадобиться:
# function для конвертации из Json
function ConvertFrom-Json20([object] $item){
add-type -assembly system.web.extensions
$ps_js=new-object system.web.script.serialization.javascriptSerializer
return $ps_js.DeserializeObject($item)
}
# function получения $response_array из запроса
function response_array($objUrl){
$client = new-object System.Net.WebClient # new-object
$client.Encoding = [System.Text.Encoding]::UTF8 # Encoding
$response_array = $client.DownloadString($objUrl) # DownloadString
return $response_array = ConvertFrom-Json20($response_array) # Конвертируем полученные данные из формата JSON в массив
}
А есть возможность в этом скрипте заложить отправку изображения в ответ на конкретные сообщения? Картинки доступны по прямым ссылкам.
Александр, есть. Возможности ограничиваются лишь Вашими навыками в программировании и фантазии. Исходный код открыт и Вы можете его переделывать как душе угодно =)
Не работает напиши мне в вк
vk.com/fichinghackvk
там что то пишет про parse
скинь мне нормальный код плз
Здравствуйте) Подскажите, пожалуйста, как сделать как раз так, чтоб бот отвечал на сообщения в чате не в лс тому что отправил сообщение, а в том же самом чате?
второй вопрос. Подскажите, пожалуйста, как сделать так, чтоб бот отвечал не на все подряд, а только при определенном обращении к нему например?
Прошу прощения за такие вопросы) я слегка пенёк во всем этом))
Что нужно читать чтобы полноценно разобраться конкретно в этом боте? Просто понятие скриптового языка довольно растянуто, а я в этой теме подтянут не сильно