Telegram-Nachrichten mittels Kommandozeile senden unter Ubuntu 20.04
Telegram-Nachrichten per Ubuntu-Kommandozeile senden: Bot mit @BotFather anlegen, Gruppen-ID via curl und jq holen und mit einem Bash-Skript verschicken.
Um mit Telegram über eine Linux Kommandozeile zu kommunizieren musst Du zunächst einen Bot erstellen. Dies machst Du mit @BotFather. Dies kannst Du mit dem Browser am PC über https://web.telegram.org/ beziehungsweise die Telegram App machen, oder einfach auf Deinem Handy. Möchtest Du das lieber grafisch lösen, zeige ich Dir in einem eigenen Beitrag, wie Du Telegram-Nachrichten mit Node-RED versendest.
- Öffne „Neue Nachricht“ und suche nach „BotFather“.
- Nun gib ein /newbot und gib den Namen ein. e.g. demobot . Nun musst Du den Benuthernamen eingeben. am besten hängst Du dem Botnamen ein „_bot“ hinten an. Also demobot_bot .
- Du Botfather schickt Dir nun eine URL e.g. http://t.me/demobot\_bot und einen Access token e.g. 11111111:iuziNizuzT868tbuTFBzfti
- Klick auf die URL und starte den Bot
Dies musst Du Dir merken!
Nun musst Du am PC oder Handy eine Gruppe einrichten und deinen neuen Bot hinzufügen.
Mittels folgendem Skript bekommst Du die ID Deiner Gruppe raus:
BOT_TOKEN="DEIN_TELEGRAM_TOKEN"
GROUP_NAME="DEIN_GRUPPEN_NAME"
curl -s https://api.telegram.org/bot${BOT_TOKEN}/getUpdates | jq '.result[].message.chat | select(.type=="group") | select(.title=="'${GROUP_NAME}'") | .id' | head -n 1
Nun kannst Du mittels curl Nachrichten an den Bot verschicken:
GROUP_ID="DEINE_GRUPPENID"
curl -X POST \
-H 'Content-Type: application/json' \
-d '{"chat_id": "'${GROUP_ID}'", "text": "This is a test from curl", "disable_notification": true}' \
https://api.telegram.org/bot$BOT_TOKEN/sendMessage
Einfacher zu nutzen ist folgendes Script:
touch ~/telegram.sh
chmod +x ~/telegram.sh
nano ~/telegram.sh
#!/bin/bash
GROUP_NAME="DEIN_GRUPPEN_NAME"
GROUP_ID="DEINE_GRUPPENID"
BOT_TOKEN="DEIN_TELEGRAM_TOKEN"
if [ "$1" == "--help" ]; then
echo "Usage: "
echo "To send a message:"
echo " ./`basename $0` send \"text message\""
echo ""
echo "To get the group id:"
echo " ./`basename $0` groupid"
echo " the result must be configured in this script under GROUP_ID"
exit 0
fi
if ! hash jq 2>/dev/null; then
echo "jq was not installed. Installing ..."
apt install -y -qq jq
fi
if [ "$1" == "groupid" ]; then
echo "----------------------------------------------"
echo ""
# get ID of first JSON entry in .result.messages.chat where type=group
echo "ID for ${GROUP_NAME}:"
curl -s https://api.telegram.org/bot${BOT_TOKEN}/getUpdates | jq '.result[].message.chat | select(.type=="group") | select(.title=="'${GROUP_NAME}'") | .id' | head -n 1
echo "ID for user:"
curl -s https://api.telegram.org/bot${BOT_TOKEN}/getUpdates | jq '.result[].message.chat | select(.type=="private") '
echo ""
echo "----------------------------------------------"
exit 0
fi
if [ "$1" == "send" ]; then
if [ "$#" -ne 2 ]; then
echo "Please put string with spaces between quotes"
exit 0
fi
curl -s --data "text=$2" --data "chat_id=${GROUP_ID}" 'https://api.telegram.org/bot'${BOT_TOKEN}'/sendMessage' > /dev/null
fi
Mittels ./telegram.sh groupid bekommst Du die Group ID raus.
Mittels ./telegram.sh send "Dies ist meine erste Nachricht" kannst Du Nachrichten schicken.
Auf dieselbe Weise kannst Du auch Signal von der Kommandozeile bedienen oder E-Mails per Kommandozeile mit postfix verschicken. Damit die Benachrichtigungen ganz automatisch laufen, kannst Du das Skript per cron automatisieren.
Mehr aus „Linux, DevOps & Systeme"
Docker Speicherplatz freigeben
Docker Speicherplatz freigeben: mit docker system df die Belegung sehen und mit prune ungenutzte Images, Container, Volumes, Netzwerke und Build-Cache löschen.
WeiterlesenWindows Core Prozesse verstehen
Windows Core-Prozesse verstehen: was smss.exe, csrss.exe, lsass.exe und svchost.exe wirklich tun und woran Du getarnte Malware im Prozessbaum erkennst.
WeiterlesenUbuntu LTS Release Update
Ubuntu LTS sicher aktualisieren: Snapshot bei Contabo oder Netcup anlegen, mit apt update und do-release-upgrade hochziehen und den SSH-Port bestätigen.
WeiterlesenÜber diesen Blog
Ein Sammelsurium an Denkanstößen.
Hier sammle ich Wissen, Argumente und Links zu allem, was mich beschäftigt — von Technik über Küche bis Nachhaltigkeit. Beruflich berate ich zu Cybersecurity.