← ClaudeAtlas

telegram-inline-button-promotelisted

Wire up a Telegram inline keyboard button in a polling bot — add button to outbound notification, subscribe to callback_query updates, answer the callback, and collapse a multi-step confirm flow into a single button press.
williamblair333/Uncle-J-s-Refinery · ★ 3 · AI & Automation · score 73
Install: claude install-skill williamblair333/Uncle-J-s-Refinery
## When to use Use this skill when you want to replace a multi-step Telegram text command (e.g. `promote <id>` → `promote <id> global`) with a single inline button press baked into the outbound notification itself. Applies to projects that: - Send Telegram notifications via a shell/Python notify lib - Run a polling bot that reads `getUpdates` in a loop - Currently use a two-step confirm flow for a privileged action ## Prerequisites - The notify lib must expose a function that accepts a `reply_markup` / inline keyboard argument (e.g. `notify_send_pitch` vs the simpler `notify_send_text`). - The polling bot must be editable Python or shell. ## Key steps ### 1. Check memory and notify lib first mempalace_search("<feature area> promote flow") # Then read lib/notify.sh (or equivalent) to find the pitch/button function ### 2. Add the inline button to the outbound notification Replace the plain-text send call with the one that accepts `reply_markup`: # Before notify_send_text(chat_id, text) # After — inline_keyboard is a list-of-rows, each row a list of buttons reply_markup = { "inline_keyboard": [[ {"text": "✅ Promote Global", "callback_data": f"promote_global:{item_id}"} ]] } notify_send_pitch(chat_id, text, reply_markup=reply_markup) ### 3. Subscribe the polling bot to callback_query updates In `getUpdates`, add `callback_query` to `allowed_updates`: params = { "offset": offset, "timeout": 30, "allowed_updates": ["message", "callback_query"]