Телеграм на страже Авито - шаблон для общения с клиентами на Авито через Телеграм

  • Автор темы Автор темы Master Woo
  • Дата начала Дата начала

Master Woo

Client
Регистрация
06.12.2014
Сообщения
122
Реакции
129
Баллы
43
Приветствую тебя мой юный рукоблудер кода кодер зеннопостер.
в данном простом, но достаточно полезном шаблоне я покажу как можно оперативно реагировать на сообщения клиентов на Авито. Для этого достаточно подключить к авито наш любимый телеграм.

Шаблон предназначен для парсинга личных сообщений с авито и отправки их в телеграм и обратного действия - пересылка сообщений из телеграм собеседнику на авито.

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

Для работы мы будем использовать xpath, с его помощью мы будем находить новые диалоги, а в диалогах новые сообщения.

Для того чтобы найти новый диалог, достаточно посмотреть на их список, и мы сразу визуально выделим новый, так как он будет подсвечен жирным шрифтом. за это отвечает атрибут BOLD, вот он то нам и нужен. наше выражение xpath будет выглядеть следующим образом:
Код:
Развернуть Свернуть Копировать
//div[contains(@class, 'bold')]
для поиска новых сообщений внутри диалога мы будем искать разделитель которым авито любезно метит для нас эти самые новые сообщения
---------------Новые сообщения--------------
для новых сообщений выглядит xpath следующим образом:
Код:
Развернуть Свернуть Копировать
//div[contains(@class, 'new-messages-delimiter-root')]/following::div[contains(@data-marker, 'messageText')]");

здесь как мы видим сообщение и делимитер находятся на одном уровне, поэтому мы используем ось following

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

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

переходим к настройке шаблона, для начала создадим бота


Шаг 1: Создаём телеграм-бота
Тут ничего нового, инструкцию возьмем с моей старой статьи по телеграму, с тех порт ничего не изменилось
для этого в строке поиска пишем
@botfather



Выбираем официального бота(будьте внимательны, все остальные боты написаны непонятно кем, и скорее всего преследуют скам цели).

далее все очень просто, стартуем бота командой /start

63707


создаем нового бота /newbot, отвечаем на простые вопросы и получаем Ключ управления ботом через API
63708

63709


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

Шаг 2: Создание канала и подключение бота

Далее просто создаем канал, либо уже используем существующий и добавляем бота в его члены. нам сразу предложат сделать его администратором, на что соглашаемся выставив ему нужные права(я даю боту права только на постинг)

51215



51216



Далее что нам требуется узнать chat_id, для этого просто в браузере делам запрос по адресу https://api.telegram.org/bot<API TOKEN>/getUpdates. В нашем случае он будет выглядеть так https://api.telegram.org/bot1102371005:AAHRUuaGT1qssatSwThC3R45yO5ZvPNg3yE/getUpdates.

При первом заходе по данному адресу получаем сообщение, что все ок, но без нужной нам информации. Постим в наш канал любое сообщение (его потом можно будет удалить) и повторно заходим по ссылке выше. На этот раз мы получаем всю информацию о нашем боте, включая необходимый нам chat_id

51218



так же копируем данную информацию, она на еще пригодиться.




Далее переходим в настройки самого шаблона:
63712


Прописываем в настройки полученные из инструкции выше BOT TOKEN ID и CHAT ID

А так же выбираем профайл который нужно подгрузить.

Чтобы предварительно создать профайл, нужно отрыть зеннопостер, перейти на сайт с авито и авторизироваться под своими данными, далее создаем кубик "действие над профилем" и выбираем "сохранить"
63713



Вот этот сохраненный профайл и "скармлеваем" нашему шаблону.
 
Номер конкурса шаблонов
  1. Шестой конкурс шаблонов
Уровень сложности
Продвинутый
Категория
  1. Чат-боты \ Автоответчик
  2. Парсинг
  3. Доски объявлений

Вложения

  • avito.zp
    avito.zp
    22,6 KB · Просмотры: 475
Последнее редактирование модератором:
жаль, что только для версии 7.1.6.1 и выше, у меня 7.1.5 :(
 
  • Спасибо
Реакции: Mikhail B.
сердечно прошу удалить кубик шифрования, чтобы можно было пользоваться шаблоном не только на самой последней версии зенки
что-то в 7 не удаляется кубик с шифрованием, но выставил минимально возможную версию 7.1.3
 

Вложения

  • avito.zp
    avito.zp
    22,6 KB · Просмотры: 363
  • Спасибо
Реакции: Andr123
Спасибо за работу!
Не подскажете как сделать если в папке есть разные профайлы и надо проверить их по очереди?
 
Спасибо за работу!
Не подскажете как сделать если в папке есть разные профайлы и надо проверить их по очереди?
самый простой вариант - сделать циклом
 
У меня не работает. Выполняю кубик "ищем новые сообщения", при этом открывается новое сообщение. Далее идёт кубик "ищем новые сообщения в переписке" - при его выполнении в result всегда записывается 0.
 
Понятно - недоработка бота. Новые реплики в диалоге он находит только в том случае, если от хозяина объявления было отправлено сообщение. А если диалог начинает покупатель, то result=0
 
Можно добавить xpath на взятие всех сообщений после первого перехода в диалог, тогда будет передаваться и первое сообщение от клиента
 
Можно добавить xpath на взятие всех сообщений после первого перехода в диалог, тогда будет передаваться и первое сообщение от клиента
Можно конечно. Но почему вы сами этого не сделали изначально? Ведь очевидно же, что диалоги между продавцом и покупателем во всех случаях начинаются с того, что пишет покупатель. И вот получается ситуация: он написал, ждёт ответа. Бот открывает диалог, покупатель видит, что сообщения прочитаны, но ему никто не ответил. Это равносильно полной неработоспособности бота.
 
Можно конечно. Но почему вы сами этого не сделали изначально? Ведь очевидно же, что диалоги между продавцом и покупателем во всех случаях начинаются с того, что пишет покупатель. И вот получается ситуация: он написал, ждёт ответа. Бот открывает диалог, покупатель видит, что сообщения прочитаны, но ему никто не ответил. Это равносильно полной неработоспособности бота.
в комбайне, который только для себя, все есть. здесь упустил, когда переносил модуль.
 
Не выполняется кубик "отправляем наше сообщение клиенту".
Выполнение действия CSharp OwnCode: отправляем наше сообщение клиенту. Последовательность не содержит элементов.
 
Не выполняется кубик "отправляем наше сообщение клиенту".
Выполнение действия CSharp OwnCode: отправляем наше сообщение клиенту. Последовательность не содержит элементов.
странно...
вернусь из отпуска посмотрю, сейчас нет доступа к компу
 
  • Спасибо
Реакции: socsecret.ru
вернусь из отпуска посмотрю, сейчас нет доступа к компу
Ок, а примерно через сколько дней это будет? А то если долго, я себе тогда с нуля буду писать аналог.
Можно добавить xpath на взятие всех сообщений после первого перехода в диалог, тогда будет передаваться и первое сообщение от клиента
Это тоже пожалуйста доделайте)
 
Работает только с одним аккаунтом? Можно как-то реализовать работу с несколькими аккаунтами?
 
Не рекомендую обращаться по любым вопросам к автору данного шаблона - рискуете быть обманутыми. Шаблон неработоспособен, автор отказался доделывать его. Очень странно, что шаблоны такого качества пропускают на конкурсы.
 
К сожалению шаб не рабочий. Авито изменило верстку сайта и его надо переделывать.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)