Всем привет!
Я мобильный разработчик. И у меня есть проблема. Я пьющий. Не беспокойтесь, это шутка 😄 Итак, вы поняли, что сегодня мы будем говорить о забавных вещах. Лично мне нужны крутые шутки, чтобы посмеяться каждые 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.