Всем привет!

Я мобильный разработчик. И у меня есть проблема. Я пьющий. Не беспокойтесь, это шутка 😄 Итак, вы поняли, что сегодня мы будем говорить о забавных вещах. Лично мне нужны крутые шутки, чтобы посмеяться каждые 30 минут.

Поэтому я решил придумать программу, которая пришлет мне крутую шутку именно тогда, когда мне это нужно. В результате я создал небольшой скрипт sh, который отправляет новую шутку в командную строку, когда я этого захочу. Это легко, потому что https://icanhazdadjoke.com имеет общедоступный API для случайной загрузки. Не секрет, что curl — лучшая и самая популярная программа командной строки для передачи данных. Итак, это подводит нас к моей первой версии сценария SH.

curl -s -X GET -H "Accept: application/json" https://icanhazdadjoke.com

Мне не нравилась идея выполнять команду в моем терминале каждый раз, когда мне нужна была новая шутка. Поэтому я начал искать другой, более удобный способ пошутить. И мне посчастливилось наткнуться на Telegram. Если вы еще не использовали его, проверьте его https://telegram.org/. Это действительно хорошо организованный мессенджер. Поэтому я решил создать телеграмм-бота, который отправляет сообщения на мой канал в Telegram каждые 15 минут. Так что, если вы любите шутки так же, как и я, присоединяйтесь: https://t.me/hourJokes

Это кажется очень странным, потому что код, который делает это, прост и мал. Например:

TOKEN=593830940:AAEbr*************8zjwGFtA
CHAT_ID=”@hourJokes”
URL=”https://api.telegram.org/bot$TOKEN/sendMessage"
while [[ true ]]; do
 RESPONSE=$(curl -s -X GET -H “Accept: application/json” https://icanhazdadjoke.com)
 JOKE=$(echo $RESPONSE | jq -r ‘.joke’)
 curl -s -X POST $URL -d chat_id=$CHAT_ID -d text=”$JOKE”
 sleep 900
done

Первый вызов curl загружает случайную шутку. Но остальные API возвращают шутку в формате JSON. Как показано ниже:

{
 "id": "qjbF6E6wHlb",
 "joke": “Why did the belt go to prison? He held up a pair of pants!",
 "status": 200
}

Мы используем jq для получения шутки из JSON. Второй вызов curl публикует новую шутку в моем публичном канале Telegram. После этого шага программа останавливается на 15 минут. Вот и все. Серьезно, без шуток. Все, что нужно, чтобы это волшебство стало реальностью, это мой код из этой статьи и бот телеграммы.
О, если вы не знаете, как создать бота Telegram, не волнуйтесь, потому что у Telegram есть бот для создания боты. Да, я не шучу, мы используем бота для создания другого бота :). Бот называется @BotFather. Чтобы создать нового бота, используйте следующую команду `/newbot`. После этого введите имя вашего бота. Вот и все, вы создали нового бота для Telegram. BotFather отправит вам токен API для вашего бота, который можно использовать для отправки сообщения в Telegram.

Это все на сегодня. Не забудьте подписаться на мой телеграм-канал: https://t.me/hourJokes и приготовьтесь к крутым шуткам.

Спасибо, Павел Дуров и ваш брат за Telegram и Telegram API, это очень круто.

На данный момент этот бот размещается на Цифровом океане. И вы можете прочитать мою статью о VPN, когда я использую DO.