Создаем бота под современную ICQ (часть 3)


Тут часть 2
Для посылки сообщений в групповой чат нам понадобится:
ICQ_BOTTOKEN: 001.0000000000.0000000000:749000000 (см тут часть 2)
ICQ_IDCHAT = @740000000

Почитать про ICQ Bot API можно тут

Изменения API
29.01.2020:
Добавили возможность в поле chatId передавать ник пользователя или чата.

Ранее, для получения chatId, проходился квест, теперь достаточно знать ник пользователя или чата.

Вот самый доступный код на php для посылки сообщений:

// ICQ-Bot, посылаем сообщение пользователю или в групповой чат
$msg = "Привет! Это тестовое сообщение.";
$ICQ_BOTTOKEN = "001.0000000000.0000000000:749000000"; //Bot token
$ICQ_IDCHAT = "@740000000"; //ChatID, ник пользователя
// $ICQ_IDCHAT = "AaLE2gDip1ZYY1112s"; //ChatID, ник группового чата
$icq_msg = rawurlencode(str_replace("@", " ", $msg));
$icq_full_url = "https://api.icq.net/bot/v1/messages/sendText?token=".$ICQ_BOTTOKEN."\&chatId=".$ICQ_IDCHAT."\&text=".$icq_msg;
passthru("/usr/bin/wget -q -O- $icq_full_url > /dev/null 2>&1 &");

Код для bash мы рассмотрим в следующем уроке по bash (:ok:)

  1. davydoff

    Здравствуйте! Помогите, пожалуйста, непосвящённому.
    Как же мне запустить этот скрипт? Бот создан, но азов запуска не знаю.
    Использовать Openserver, или просто установить php для реализации.
    Все вы с чего то начинали здесь, помогите, пожалуйста, как запустить этот простейший код.
    Не хочу я инсталлировать библиотеки pip и готовые скрипты, как их запускать тоже.

  2. Samp Автор записи

    Ого! Этож какой поисковик вам выдал ссылку?)
    Я сейчас с мобилы и полноценно не могу помочь.
    Код надо сохранить в формат файла *.php

    В коде используется вызов внешней linux программы wget.
    Ну а дальше /путь_к_нашему_пхп/php -f наш_код_в_файле.php

    Все это надо делать в консоли линукса… под вин я даже не знаю как это все запустить (:unknw:)

  3. davydoff

    Это яндекс проиндексировал вас по запросу бот в ICQ.
    Я вообще не владею азами линукса.
    Я в редакторе обернул все с расширением .php, вставив код между

    Может попробовать мне запустить файл через сервер сайта? в браузере..
    В остальном буду рад вас читать, мне тяжело все воспринимать правильно. Но я учусь.

  4. davydoff

    кажется стал понимать о чем вы, если внешняя команда linux..
    то надо установить php наверное под win…

  5. Samp Автор записи

    Если в строке браузера, то собственно и не нужен php, только урлу правильно составить.
    Щас я поправлю код, а то он съехал из-за спец символов

  6. davydoff

    что-то не то делаю, видимо, не могу понять правильность написания из под строки браузера, битрикс не вопрнимает чтоли..

  7. Samp Автор записи

    Вставил код в виде картинки.

  8. Samp Автор записи

    Я так выглядит урл для вставки в любой браузер, картинка

  9. Samp Автор записи

    Токен вставить своего бота, а ID чата того кому посылаешь.
    Если в чат группы, то нужно сначала добавить своего бота в этот чат.

  10. Samp Автор записи

    Это яндекс проиндексировал вас по запросу бот в ICQ

    Просто этот ресурс не самый посещаемый, вернее самый не посещаемый 😀

  11. davydoff

    Большое спасибо, но тут защита, видимо, обработчик выдает:

    ok false
    description «Permission denied»

  12. davydoff

    Просто этот ресурс не самый посещаемый, вернее самый не посещаемый

    Зато логичный и нужный! Для тех, кому нужна правильная информация, а не мусор посещаемости

  13. davydoff

    Не получается, скомандуете, пожалуйста, куда «рулить» ,а то ученик уедет в столб…
    Хочется уже «добить», что не так….

  14. Samp Автор записи

    Да не, скорее всего шлете по не одобренному ID чата
    нет доступа у бота

  15. davydoff

    вот формат, я не использую чаты, просто по номеру телефона, он же ник, получается:
    https://api.icq.net/ bot/v1/messages/ sendText? token=001.00000000. 0000000:000000 &chatId=@XXX &text=»Привет! Это я»

    А, кстати, в шапке поста картинкой неудобно текст не скопируешь, лучше, я думаю, оставить текст для удобства копирования…

  16. Samp Автор записи

    Я вот сейчас попробовал урлу и послал себе сообщение, все отработало
    Урл вставить в своем браузере на ПК для проверки
    На сервере потом тренироваться

  17. Samp Автор записи

    Я там потер, нафиг проиндексируется)

  18. davydoff

    Да, все точно в браузере делаю, без сервера.
    Очень не хочется время тратить ваше, я ответственно отношусь, все перепроверил, опять мне доступ закрывает.
    А попробуйте на этот номер? Он мой @XXXXX — для проверки, пройдет ли по нему

  19. Samp Автор записи

    Попробовал ваш урл, отчет, нет доступа

  20. Samp Автор записи

    Ваш бот не в списке у вашего ID аси

  21. davydoff

    да как быть то, мне для дела) одном человеку то по сути нужно подарок)) от бота сделать.

  22. Samp Автор записи

    Вот я сейчас попробовал от вашего бота на свой ID аси послать, тоже нет доступа (Permission denied)
    Ну так устроена защита от спама у аси 🙁
    Значит берем пиво и ногами к челу (:drinks:)

  23. davydoff

    А через Linux осуществится? Если установить

  24. Samp Автор записи

    Неа, тут суть в том, что просто рассылку не получится сделать, можно сделать свою группу, прописать там бота, а потом пригласить чела в эту группу и типа неожиданно завалить весь чат сообщениями от бота
    Ну так себе идея (:crazy:)

  25. davydoff

    Да, тогда придется писать. Ух я не спец, но ради фигни для подарка от бота, не стоит игра свеч.
    Тем не менее, спасибо за ответы.
    Может тогда по каким то вопросам я в твитер стукнусь аккуратно ваш

  26. Samp Автор записи

    Ок) Удачи, добра, любви 🙂

  27. davydoff

    В продолжении темы. Я поставил ник к номеру телефона контакта и попробовал отпарить сообщение через сервер ICQ — все стало приходить!
    Значит по ID ника отправка возможна.
    Но как решить вопрос, если ник в контакте не указан? Может можно вызвать функцию запроса или как «победить» отправку сообщения без никак пользователя, используя телефон контакта, который по сути и есть же ник, если не указано другое.

  28. davydoff

    пробую параметр userID — не слышит меня, может как-то можно использовать этот параметр

  29. davydoff

    Уникальный ник или id группы или канала. Id можно получить из входящих events (поле chatId).
    возможно есть способ обратиться с событию и узнать уникальный ник, если он не присвоен.
    Уж, простите, мне интересно это.

  30. davydoff

    Ну, собственно ответ:
    Здравствуйте.

    На данный момент описанная вами функция не реализована.
    Мы примем во внимание ваше пожелание и постараемся учесть при разработке
    новой версии приложения.

    С уважением,
    Служба поддержки пользователей ICQ New

    Как реализуют — узнаем и проинформируем.

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