add inline keyboard button

This commit is contained in:
Kirill Chikalin
2025-06-01 18:55:20 +03:00
parent 73032ddbf6
commit e8978753e0
2 changed files with 52 additions and 12 deletions

View File

@@ -1,16 +1,48 @@
#!/bin/bash
response=$(curl -s -X POST "https://api.telegram.org/bot$1/sendMessage" \
-d "chat_id=$2" \
-d "parse_mode=HTML" \
-d "link_preview_options={\"is_disabled\":true}" \
-d "text=$(echo -e $3)")
BOT_TOKEN="$1"
CHAT_ID="$2"
TEXT="$3"
DOWNLOAD_TITLE="$4" # Необязательный
DOWNLOAD_URL="$5" # Необязательный
# if command -v jq >/dev/null 2>&1; then
message_id=$(echo "$response" | jq '.result.message_id')
# else
# message_id=$(echo "$response" | grep -o '"message_id":[0-9]*' | sed 's/"message_id"://')
# fi
# Обработка текста с \n
PARSED_TEXT=$(printf "%b" "$TEXT")
# Базовый JSON без reply_markup
JSON=$(jq -nc \
--arg chat_id "$CHAT_ID" \
--arg text "$PARSED_TEXT" \
'{
chat_id: $chat_id,
text: $text,
parse_mode: "HTML",
link_preview_options: { "is_disabled": true }
}')
# Если передана ссылка — добавим кнопку
if [[ -n "$DOWNLOAD_URL" ]]; then
JSON=$(echo "$JSON" | jq \
--arg text "$DOWNLOAD_TITLE" \
--arg url "$DOWNLOAD_URL" \
'. + {
reply_markup: {
inline_keyboard: [[
{ text: $text, url: $url }
]]
}
}')
fi
echo $JSON
# Отправка запроса
response=$(curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
-H "Content-Type: application/json" \
-d "$JSON")
# Получаем message_id
message_id=$(echo "$response" | jq '.result.message_id')
echo "Sent message with ID: $message_id"
echo "OUTPUT_MESSAGE_ID=$message_id" >> $GITHUB_ENV
echo "OUTPUT_MESSAGE_ID=$message_id" >> "$GITHUB_ENV"