Wermescher Advisory Logo

Telegram-Nachrichten mittels Kommandozeile senden unter Ubuntu 20.04

Inhaltsverzeichnis

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.

  • Ö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.

Teilen:
Weitere Posts
Windows Core Prozesse verstehen

SMSS.EXE Die Aufgabe des SMSS.exe-Prozesses ist es, neue Sitzungen zu erstellen. Zuerst werden Session 0 und Session 1 erstellt, sobald das Betriebssystem startet. Sitzung 0

Release Update auf Contabo

Erzeuge einen Snapshot Einloggen auf: https://my.contabo.com/account/login Klick auf Ihre Dienste und suche nach der korrekten IP Adresse Klick auf Verwalten – Steuerung Erzeuge einen Snapshot

Wie sichere ich meinen SSH-Server unter Linux

Normalerweise wird SSH verwendet, um sicher auf Linux-Server zuzugreifen. Durch Benutzer manuell oder auch durch automatisierte Systeme wie Ansible. Die meisten Benutzer verwenden SSH-Verbindungen mit

Sende uns eine Nachricht