Как добавить бота в чат icq

Foodband

ICQ-Боты.

12:31 05-03-2007 mpeg4

Боты ICQ
В связи с тем, что вся информация по ботам очень уж разбросана по статьям, я решил собрать все в одну статью. Ссылки на источники писать не буду, поскольку собирал информацию по всему инету и пришлось бы писать очень много ссылок. Также не могу дать гарантии, что они все работают. Если вы знаете боты, которых нет в списке, просьба написать в комментариях.

Как добавить бота в чат icq

ZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слуху

Регистрация: 18.05.2013
Сообщений: 97
Популярность: 1374
Сказал(а) спасибо: 52

Доброго времени суток ! Дорогие форумчане, в данной статье я расскажу Вам о написании своего личного бота под ICQ, писать мы будем его на PHP.

Итак, что нам для начала понадобится

1. Хостинг с поддержкой PHP (список хостингов которых можно выбрать под данный скрипт)

2. Прямые руки и небольшое знание языка PHP

3. ICQ номерок отведенный под бота

1. Первым этапом, вам понадобится класс для создания бота, ведь он поможет с исправлением проблем протокола ICQ, а значит позволить нам подключиться к ICQ за пару секунд !

Автор данной идеи выбрал — "mlCQ library v0.4"

Назвать класс можно произвольно, например class.php, можно временно забыть о нем.

— Перейдем к созданию самого главного — конфига бота, в нем будут храниться настройки самого скрипта и нашего чудо-бота

Конфиг мы назовем conf.php

<?php
DEFINE ( ‘UIN_ADMIN’ , ‘ваша ася’ ); // Номер ICQ админа

// Уин бота
DEFINE ( ‘UIN_BOT’ , ‘тут аська бота’ ); // Номер ICQ бота
DEFINE ( ‘PASS_BOT’ , ‘тут пароль’ ); // Пароль от уина ICQ бота

// Настройки бота
DEFINE ( ‘BOT_STATUS’ , ‘Статус бота X-Traz’ ); // X-Traz статус бота
DEFINE ( ‘BOT_BIRTHDAY’ , ‘1’ ); // Шарик день-рождения

// Настройка логирования
DEFINE ( ‘LOG_SET’ , ‘0’ ); // Если нужны логи поставте 1
DEFINE ( ‘LOG_FILE’ , ‘huge.log’ ); // Файл логов
?>

Сохраняем мы класс и конфиг (class.php & config.php) в одной папке.

2. Перейдем ко второму шагу, а это оболочка самого бота и скрипта, которые и будут управлять всем нашим функционалом, в нем будет храниться скриптус входа в режим online, и скрипт обработки.

Теперь мы подключаем наш class и config /.php

Настроим параметр дня рождения (icq birthday), логов и перейдем к самому запуску бота

Уделим внимание запуску команд:

Вот теперь самая сложная часть которая разместит в себе весь остаток кода!

Сохраним файлец как bot.php

И последним шагом загрузим на свой хостинг !

На этом все, всем спасибо, с Вами был zFrost.

Исходная статья [ Ссылки могут видеть только зарегистрированные пользователи. ]

15.04.2014, 21:20 #2

Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(

Медаль Благодарности Орден за Веру и Верность Zhyk.Ru Орден мастерства Читера (IV степени) Медаль за активность на Форуме Орден мастерства Читера (V степени)

Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90

На любом хостинге ограничение на время выполнения скрипта, set_time_limit не прокатит, если используется связка nginx-fpm то вообще можно забыть(ибо настраивать еще и nginx-proxy) + утечки памяти, да и вообще как по-мне это велосипед без колес и руля.

Плюс не уловил сути вообще этого бота, это уже готовый бот, от которого просто заюзана либа или как?

И напоследок для чего это вообще нужно?

Foodband

16.04.2014, 01:08 #3

ZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слухуZFrost у всех на слуху

Регистрация: 18.05.2013
Сообщений: 97
Популярность: 1374
Сказал(а) спасибо: 52

Плюс не уловил сути вообще этого бота, это уже готовый бот, от которого просто заюзана либа или как?

16.04.2014, 04:42 #4

Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(Hermein сломал счётчик популярности :(

Медаль Благодарности Орден за Веру и Верность Zhyk.Ru Орден мастерства Читера (IV степени) Медаль за активность на Форуме Орден мастерства Читера (V степени)

Регистрация: 14.01.2011
Сообщений: 633
Популярность: 28087
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 90

Если взять компетентные источники, то бОльшая часть серьезных проектов на данный момент написаны на Java, .NET и node.js
Взять к примеру тот же vk.com, в котором используется собственная технология kphp, от настоящего php с интерпретацией в нем нет ничего, по-сути это php-код, который компилится в нативный бинарник в С++, опять таки если взять отдельный функционал, например im(система диалогов), то она построена на базе Node.Js

ИМХО давно пора выкинуть php на свалку за ненадобностью, можно разводить много холиваров, но все-же технология устарела просто нереально, хоть и очень простая и любой школьник новичок может начать "кодить" без особых проблем, но все-же надо следовать прогрессу, а не топтаться на месте.

16.04.2014, 07:22 #5

Yukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядомYukikaze в состоянии испепелить взглядом

Орден мастерства Читера (V степени) Звезда ордена За заслуги перед Форумом Zhyk.Ru Знак ордена За заслуги перед Форумом Zhyk.Ru

Регистрация: 01.10.2011
Сообщений: 128
Популярность: 5723
Сказал(а) спасибо: 25

В дополнение вышесказанному:
Ruby (Rails) — про этот язык наверное не слышал только ленивый, чаще всего упоминается именно Ruby on Rails, рельса — это фреймворк для веб разработки, есть множество готовых "гемов" ускоряющих разработку, писать на руби нынче меинстрим.
Python (Django) — не менее популярный чем руби, очень краткий и лаконичный <3
Node.js — данный язык покупает нас своей асинхронностью, очень шустрое исполнение и довольно прост в реализации, правда за асинхронность приходится платить вереницами коллбеков по этому ждем утверждение спецификации ES6 которая принесет промисы и таски.

В принципе существует еще множество языков для веб разработки, те же Go, Dart, или компилируемый в JavaScript CoffeeScript .

Как добавить бота в чат icq

Интерфейс для работы с ICQ ботами для NodeJS/TypeScript. В этом пакете я (разработчик) попытался максимально избавится от всех зависимостей и сделал максимально похожий код и интерфейс на версию "bot-python" из pip от mail.ru

Все интерфейсы ответов сервера, сущностей и доступны для работы с TypeScript и готовы к экспорту.

Тестирование проекта выполняется с помощью фреймворка mocha.

Также имеется описание проекта на английском языке в README.EN.md доступное после скачивания.

Библиотека поддерживает Bot API 1.0 интерфейс и совместимый с NodeJS верси 13.10.1

Что бы создать собственного бота необходимо зарегистрироваться в ICQ и написать в чат Metabot команду

Далее следуйте инструкции.

Метобот сможет ответить вам если вы добавите его в список контактов или сами начнёте диалог.

Установка с использованием npm:

Обратите внимание на актуальную мажерную версию бота

Инициализация для JS проекта

где XXX.XXX.XXX:XXX — токен, который выдал метобот в диалоге

Конструктор класса поддерживает два параметра

  • apiUrlBase — Базовая ссылка на API. по умолчанию: https://api.icq.net/bot/v1
  • name — имя бота
  • version — версия бота (используется в запросах в заголовке в параметре User-Agent)
  • timeoutS — Время на ответ. не используется нигде.
  • pollTimeS — время максимально разрещенного запроса

Отправка сообщений чрез API

где XXX — номер чата

Как использовать пулинг

Для начала нужно созать обработчик. Вы можете использовать следующие обработчики (Хэндлеры): ICQ.Handler.* :

  • HelpCommand — пользователь отправил команду help
  • Message — пользователь отправил сообщение
  • NewChatMembers — пользователь присоединился к общему чату
  • LeftChatMembers — пользователь покинул чат
  • PinnedMessage — пользователь закрепил запись в чате
  • UnPinnedMessage — пользователь открепил запись в чате
  • EditedMessage — пользователь отредактировал запись
  • DeletedMessage — пользователь удалил сообщение
  • Command — пользователь отправил команду в которая команда это первое слово
  • StartCommand — пользователь отправил команду start
  • FeedbackCommand — пользователь отправил команду "feedback текст" и в ответ администратор (указанный в параметрах обработчика) получает сообщение с номером чата и текстом
  • UnknownCommand — Все не обработанные команды другими обработчиками
  • BotButtonCommandHandler — пользователь нажал на кнопку с командой
  • deleteMembers — удалить членов группы по номеру пользователя или массиву. Бот должен быть администратором.
  • setAvatar — установить аватар для группы. Бот должен быть администратором.

Хэндлер должен быть помещён в экземпляр класса дипечер в экземпляре класса бот. Для этого в ранее созданном боте необходимо вызвать метод getDispatcher() который вернёт актуальный диспетчер.

Далее следует вызвать метод addHanler( handler: BaseHandler ) и поместить один из выше перечисленных созданных обработчиков. В примере приведен обработчик Message

Как использовать фильтры для обработчиков

Вы можете использовать следующие фильтры: ICQ.Filters.* :

  • message * — обработчик фильтрует только сообщения с текстом
  • command * — филтрует только сообщения с префиксом команд "/" или "."
  • file * — обработчик фильтрует только отправку файлов
  • image * — только отправка файлов изображений
  • video * — только отправка файлов видео
  • audio * — только отправка файлов со звуковыми расширениями
  • media * — фильтрует файлы изображений, видео и аудио
  • sticker * — отправлен стикер
  • url * — только ссылки в сообщениях за исключением отправки файлов
  • regexp — фильтр по регулярному выражению
  • mention — сообщения с упомянанием вас
  • forward * — только сообщение с типом Forward (Пересланное сообщение из другого чата)
  • reply * — только сообщения с типом Reply (Цитируемое сообщение)
  • sender — только сообщения конкретного пользователя

Все фильтры с * возвращают уже созданные объекты. Все остальные возвращают классы.

Foodband

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *