Уведомления в Telegram из A-Parser

Тема в разделе "Делимся опытом", создана пользователем Support, 15 мар 2018.

  1. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    1.962
    Симпатии:
    1.381
    В данной статье будет рассказано о том, как отправлять сообщения из А-Парсера себе в Телеграм, а также показано 2 примера использования данного способа на практике.

    Подготовка
    Сначала нужно создать Telegram бота. В интернете о том как это сделать есть очень много статей, поэтому я расскажу о данной процедуре вкратце.
    [​IMG]
    1. Ищем в Telegram "отца всех ботов" @BotFather
    2. Отправляем ему команду /newbot и следуем дальнейшим инструкциям: задаем отображаемое имя и юзернейм бота
    3. После создания бота BotFather пришлет его токен - сохраняем (записываем, запоминаем...) его вместе с юзернеймом, который мы задали на 2-м шаге
    Бот готов.
    Теперь создаем группу в Телеграме.
    1. Открываем Меню - Создать группу
    2. Приглашаем в группу ранее созданного бота, введя в строку поиска его юзернейм. Также обязательно добавляем специального бота, который в будущем выдаст нам ID группы: @myidbot
    3. Называем группу любым удобным именем
    Теперь наша группа готова. Сюда будут приходить уведомления от созданного бота.

    Для отправки сообщений в данный чат, нужен его ID. В его получении нам поможет IDBot, которого мы ранее добавили в группу. Отправляем ему команду /getgroupid и получаем нужный ID, который также сохраняем. После этого IDBot можно удалить из группы.

    На этом работа с Telegram закончена.
    Теперь перейдем к А-Парсеру.
    [​IMG]
    1. Импортируем пресет из каталога: https://a-parser.com/resources/271/
    2. Вписываем полученные ранее токен (вместо {YOUR_TOKEN}) и ID (вместо {CHAT_ID})
    3. Тестируем: если все было сделано правильно, то после запуска пресета в ранее созданную группу должно прийти сообщение. Если же что-то пойдет не так, то в файл результата выведется сообщение об ошибке.
    4. Если тест успешен - сохраняем пресет
    Теперь у нас есть готовая система для отправки сообщений из A-Parser в Telegram.

    Примеры использования
    Уведомление об окончании работы задания

    А-Парсер может обрабатывать различные проекты, некоторые могут работать по несколько часов, а то и дней. Следить за тем, когда же завершится то или иное задание не очень удобно, поэтому настроим уведомление об окончании в Телеграм.
    Для этого воспользуемся функционалом Цепочки заданий. В задании, завершение которого нужно отследить, укажем в пункте Запустить по завершению ранее сохраненный пресет.
    [​IMG]
    Теперь можно запускать основное задание. По его окончанию запустится пресет, отправляющий уведомление и вы сразу узнаете о завершении работы основного задания, получив заранее сохраненное сообщение, например такое:
    [​IMG]

    Периодическое получение данных
    Аналогичным способом можно периодически получать необходимые данные прямо в Telegram. Для примера возьмем получение позиций сайта a-parser.com по нескольким ключевым словам.
    1. Создаем пресет, который будет парсить позиции:
      [​IMG]
    2. В поле Запустить по завершению указываем пресет, который отправляет уведомления. Но теперь включаем опцию Использовать файл результатов для запросов:
      [​IMG]
    3. Запускаем созданный пресет. Если все сделано правильно, то в телеграм прийдет сообщение с результатом основного пресета:
      [​IMG]
    4. Теперь воспользуемся Планировщиком и настроим периодическое выполнение созданного пресета. Например вот так (каждый день в 8:45):
      [​IMG]
    Теперь каждое утро к чашечке утреннего кофе и новостям нас будет ждать в Телеграме сводка по позициям сайта ;)
     
    Gerero, alexcraft, btr и 5 другим нравится это.
  2. sergeda

    sergeda A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    22 май 2013
    Сообщения:
    171
    Симпатии:
    18
    @Support
    А можно такое же сделать для заданий, в которых может быть очень много результатов? Чтоб результаты разбивались пачками, скажем по 100 строк и отправлялись на Телеграм?
     
  3. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    1.962
    Симпатии:
    1.381
    Можно. Формируйте в основном задании результат таким образом, чтобы в файле результата в каждой строке было по 100 подстрок. Подобный подход описан выше в примере "Периодическое получение данных".
    Вот пример шаблона (по 100 ссылок в сообщении):
    Код:
    [% FOREACH item IN p1.serp;
        count = count + 1;
        separator = count mod 100 ? '%0A' : "\n";
        item.link _ separator;
    END %]
    Рекомендую запускать задание, которое отправляет сообщения, в 1 поток, чтобы не нарушать очередность. Примерно вот так:
    [​IMG]

    P.S. Хотя не совсем понятно, зачем отправлять себе в Телеграм весь результат, если его очень много...
     
  4. sergeda

    sergeda A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    22 май 2013
    Сообщения:
    171
    Симпатии:
    18
    @Support
    Не совсем то, чего хотелось бы. Вот если у нас есть задача которая может идти очень долго и она периодически пишет результат. И нужно этот результат отправлять в Телеграм не дожидаясь завершения всего задания так как важна оперативность получения. Как-то это можно сделать?
     
  5. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    1.962
    Симпатии:
    1.381
    Как вариант - JS парсер, который будет парсить то что вам нужно и отправлять результаты по ходу выполнения в Телеграм
     
    sergeda нравится это.

Поделиться этой страницей