Недавно решил доработать старый скрипт для софта ZennoPoster, в этот раз планировал сделать полноценный экшен, который бы отправлял не просто сообщение о новом задании с биржи фриланса в Телеграм по API, но и заранее проверял бы уже ранее высланные, для этого потребуется база данных .SQL. Но обо всем по порядку, поэтому читаем данную статью максимально подробно и не задаём лишних вопросов.

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

Сперва нам понадобится так называемое id либо группы, либо канала (зависит от того, как вы планируете использовать Телеграм). Для этого получаем токен доступа и переходим по ссылке:

https://api.telegram.org/bot"YourBOTToken"/getUpdates

Где "YourBOTToken" меняем на полученный ранее токен из Телеграм (как его получить, читайте в соответствующих статьях - поиск работает...)

Подсказка: вам нужно создать бота, который бы посылал данные, для этого найдите @BotFather в Телеграм и следуйте дальнейшим указаниям...

Далее узнаем id из текста запроса, где указано сообщение в группе, и записываем его номер в текстовый документ или, собственно, скрипт ЗенноПостера. Впоследствии эти данные нам пригодятся, и вы увидите как именно.

Чтобы отправить какое-либо сообщение в Телеграм по API, необходимо знать вышеназванный айди, а также сам текст, изображение или ссылку. Сперва для тех, кто совсем не в курсе как это все работает, действия могут показаться слишком сложными. Но поверьте, один раз разобравшись во всех деталях, вам покажется это лёгким путем для достижения поставленной цели.

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

Подключиться к базе данных SQL можно таким образом:

SELECT `id` FROM `{-Variable.telegram_canal-}` WHERE `ids`='{-Variable.id-}' LIMIT 1;

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

Мы проверяем внутри базы данных наличие id поста на бирже фриланса, чтобы в нашей группе Телеграм канала не было дублей. Если вам не нужна опция проверки на имеющиеся посты, смело переходите к следующему пункту.

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

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

После того как основная подготовка завершена, реализуем, собственно, сам запрос:

https://api.telegram.org/bot{-Variable.token_bot-}/sendMessage?chat_id={-Variable.chat_id-}&text={-Variable.title-}{-String.Enter-}{-String.Enter-}https://kwork.ru/projects/{-Variable.id-}{-String.Enter-}{-String.Enter-}{-Variable.description-}{-String.Enter-}{-String.Enter-}{-Variable.remain-}{-String.Enter-}{-Variable.requests-}{-String.Enter-}{-String.Enter-}{-Variable.budget-}{-String.Enter-}{-Variable.budget2-}{-String.Enter-}{-String.Enter-}{-Variable.buyer-}

Как видите, код состоит всего лишь из нескольких строчек, да и вы можете его ещё сократить, выложив только текст, если хотите.

Что можно доработать?

Реализовать можно следующее:

  • выбор во входных настройках конкретной группы для выкладывания постов;
  • количество сообщений в день и периодичность их отправки;
  • количество откликов от исполнителей;
  • вынужденная остановка постов при большой загруженности, либо по причине отсутствия физических возможностей, времени справиться с таким объемом информации и т.п.

Итоги

Вы можете сказать, что проще зайти на сам сайт в раздел "Биржа", получив все необходимые данные. В принципе, да, это один из подходов, но представьте себе, что запросы (ключевые слова) формируются еще на этапе планирования, а вы становитесь более мобильным именно при использовании программы ZennoPoster, т.к. используете один канал связи, и вас не беспокоит корявое приложение от разработчиков сайта, или тормозящие всплывающие невпопад попапы. Так или иначе, чтобы быть в курсе происходящего, вам нужно всего-то узнать токен и id группы для отправки сообщений.

Заказать похожий скрипт можно на странице контактов.

Статья была полезна?

A
Admin

Блогер и преподаватель по темам фотографии, дизайна и цифрового творчества.

Все статьи