SuperAPI AI 工具集

configure-telegram

办公与效率

查看项目

更新于 10-16 04:06

技能介绍

用途

configure-telegram 是 oh-my-codex(OMX)中的一项交互式配置技能,用于设置 Telegram 机器人通知,使 OMX 在会话结束、需要用户输入或完成后台任务时向用户发送 Telegram 消息。它通过自然语言问答的方式引导用户完成配置,最终结果写入配置文件。

主要能力

  • 检测已有配置:读取 $HOME/.codex/.omx-config.json,检查其中 notifications.telegram 的启用状态、chatId 与 parseMode,若已配置则询问用户是更新还是重新配置。
  • 引导创建 Telegram 机器人:指导用户在 Telegram 中搜索 @BotFather,发送 /newbot,设置名称与用户名,获取形如 123456789:ABCdefGHIjklMNOpqrsTUVwxyz 的 token。
  • 获取 Chat ID:引导用户与机器人对话(发送 /start),并访问 https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates 查找 "chat":{"id":YOUR_CHAT_ID}。个人聊天 ID 为正数,群组聊天 ID 为负数。
  • 收集并校验 Bot Token:要求符合 digits:alphanumeric 格式(如 123456789:ABCdefGHI...),不合格则提示格式并要求重新输入。
  • 收集并校验 Chat ID:须为数字(个人为正、群组为负),无效时可通过 curl 调用 getUpdates 接口辅助查找。
  • 选择消息解析格式:可选 Markdown(推荐,支持粗体、斜体、代码块)或 HTML(使用 HTML 标签实现粗体、斜体、代码)。
  • 配置通知事件(多选):会话结束(推荐)、需要用户输入(适合长任务)、会话开始、会话持续(持久模式保持会话存活)。默认选择为 session-end + ask-user-question。
  • 写入配置:读取现有配置,合并新的 Telegram 设置后写回。会设置 notifications.enabled 与 notifications.telegram 的 enabled、botToken、chatId、parseMode 字段;对未勾选的事件写入对应的 enabled: false 配置。
  • 测试配置:可发送测试消息验证设置。脚本通过 curl 调用 sendMessage 接口,依据 HTTP 状态码判断成败:200 表示成功;401 Unauthorized 表示 Bot Token 无效;400 Bad Request: chat not found 表示 Chat ID 错误或用户未向机器人发送 /start;网络错误则需检查与 api.telegram.org 的连通性。
  • 输出最终配置摘要:显示 Bot 用户名、Chat ID、格式与已启用事件,提示配置保存路径 ~/.codex/.omx-config.json,并说明可通过环境变量设置,以及使用 /configure-telegram 重新配置、/configure-discord 配置 Discord。

使用方式

该技能以交互对话方式运行,逐步通过 AskUserQuestion 收集信息。用户按提示输入 Bot Token、Chat ID,选择解析格式与通知事件,最终写入配置文件。

配置也可跳过向导,直接在 shell 配置文件中设置环境变量:

export OMX_TELEGRAM_BOT_TOKEN="123456789:ABCdefGHIjklMNOpqrsTUVwxyz" export OMX_TELEGRAM_CHAT_ID="123456789"

通知系统会自动检测这些环境变量,无需 .omx-config.json。

写入配置的核心命令示例:

CONFIG_FILE="$HOME/.codex/.omx-config.json" mkdir -p "$(dirname "$CONFIG_FILE")"

if [ -f "$CONFIG_FILE" ]; then EXISTING=$(cat "$CONFIG_FILE") else EXISTING='{}' fi

echo "$EXISTING" | jq
--arg token "$BOT_TOKEN"
--arg chatId "$CHAT_ID"
--arg parseMode "$PARSE_MODE"
'.notifications = (.notifications // {enabled: true}) | .notifications.enabled = true | .notifications.telegram = { enabled: true, botToken: $token, chatId: $chatId, parseMode: $parseMode }' > "$CONFIG_FILE"

适用场景

适用于使用 Codex 会话、并希望通过 Telegram 接收会话状态通知的用户,特别是长任务需要在会话结束时或等待输入时得到提醒的场景。也适合需要为 OMX 快速完成通知渠道配置的新用户。

限制

  • 需要用户自备 Telegram 机器人 token 与 chat ID,技能不代为创建账号或获取凭证。
  • 依赖 OMX 的通知系统与配置文件路径 ~/.codex/.omx-config.json。
  • 测试环节依赖对 api.telegram.org 的网络连通性。
  • 关于费用、平台差异或其他未在资料中说明的信息暂未提供。