Skip to main content
Glama
GEMINI_QUICK_FIX.md6.48 kB
# Gemini CLI 快速修复指南 ## 🐛 问题:Telegram 无法发送消息给 Gemini ### 症状 1. ✅ Gemini 成功发送消息到 Telegram 2. ✅ Telegram 收到消息和按钮 3. ❌ 在 Telegram 发送消息,Gemini 没反应 4. ❌ 点击按钮没反应 --- ## 🔍 诊断步骤 ### 步骤 1: 运行诊断脚本 ```bash cd telegram-mcp-server ./debug_gemini.sh ``` 这会检查: - 会话文件 - 消息队列 - 按钮动作 - 日志文件 - Gemini 配置 ### 步骤 2: 检查会话 ID 在 Telegram 中发送: ``` /sessions ``` **预期输出**: ``` 📋 活跃会话: 1️⃣ ⏸️ `tt` 📁 `/path/to/project` 🕐 1分钟前 ``` **关键**:确认会话 ID 是 `tt`(或你在 Gemini 中看到的 ID) ### 步骤 3: 测试消息发送 在 Telegram 中发送: ``` /to tt 测试消息 ``` **预期输出**: ``` ✅ 消息已发送到 `tt` 💬 测试消息 ``` 如果看到这个,说明消息队列工作正常。 ### 步骤 4: 检查 Gemini 是否收到 在 Gemini 终端中,应该看到: ``` 📨 收到新指令: 测试消息 请执行此指令,完成后再次调用 telegram_unattended_mode 继续循环。 ``` --- ## 🔧 常见问题和解决方案 ### 问题 1: Telegram Bot 没有运行 **症状**: - `/sessions` 没有响应 - 发送消息没有任何反应 **原因**:Telegram Bot 进程没有启动 **解决方案**: Telegram Bot 应该在 Gemini 启动时自动启动。检查日志: ```bash tail -f /tmp/telegram-mcp-server.log ``` 应该看到: ``` Starting Telegram bot (first instance)... Telegram bot started successfully ``` 如果没有,可能是: 1. 配置错误 - 检查 `~/.gemini/settings.json` 2. Bot Token 无效 - 重新运行 setup 3. 端口被占用 - 重启系统 ### 问题 2: 会话 ID 不匹配 **症状**: - `/sessions` 显示的会话 ID 和 Gemini 中的不一致 - 发送消息到错误的会话 **解决方案**: 设置环境变量指定会话 ID: ```bash # 方法 A: 在启动 Gemini 时设置 TELEGRAM_SESSION=my-project gemini --yolo # 方法 B: 在配置文件中设置 # 编辑 ~/.gemini/settings.json { "mcpServers": { "telegram": { "env": { "TELEGRAM_SESSION": "my-project", "TELEGRAM_BOT_TOKEN": "...", "TELEGRAM_CHAT_ID": "..." } } } } ``` ### 问题 3: 消息队列文件不存在 **症状**: - 消息发送成功,但 Gemini 收不到 - `~/.telegram-mcp-queue.json` 不存在 **解决方案**: 手动创建队列文件: ```bash python3 << 'EOF' import json from pathlib import Path queue_file = Path.home() / ".telegram-mcp-queue.json" queue_file.write_text(json.dumps({}, indent=2)) print(f"✅ 创建队列文件: {queue_file}") EOF ``` ### 问题 4: 按钮点击没反应 **症状**: - 点击 "运行脚本"、"查看代码" 等按钮没反应 - 按钮变灰但没有任何输出 **原因**:按钮动作文件不存在或已过期 **解决方案**: 检查动作文件: ```bash cat ~/.telegram-mcp-actions.json ``` 如果文件不存在或为空,让 Gemini 重新发送带按钮的消息: 在 Gemini 中: ``` 使用 telegram_notify_with_actions 重新发送一条带按钮的测试消息 ``` ### 问题 5: Gemini 超时 **症状**: - Gemini 显示 "Anticipating User Input (esc to cancel, 4m 27s)" - 然后超时退出 **原因**:Gemini 的 MCP 超时设置太短 **解决方案**: 运行修复脚本: ```bash cd telegram-mcp-server ./fix_gemini_timeout.sh ``` 或手动编辑 `~/.gemini/settings.json`: ```json { "mcpServers": { "telegram": { "timeout": 604800000 } } } ``` **重要**:`timeout` 单位是毫秒,604800000 = 7天 --- ## 🧪 完整测试流程 ### 1. 清理旧数据 ```bash rm ~/.telegram-mcp-sessions.json rm ~/.telegram-mcp-queue.json rm ~/.telegram-mcp-actions.json ``` ### 2. 重启 Gemini ```bash # 停止 Gemini (Ctrl+C) # 设置会话 ID 并启动 TELEGRAM_SESSION=test-session gemini --yolo ``` ### 3. 在 Gemini 中测试 ``` 使用 telegram_notify_with_actions 发送一条测试消息,包含 2 个操作按钮 ``` ### 4. 在 Telegram 中验证 应该收到消息和按钮。 ### 5. 测试消息发送 在 Telegram 中: ``` /sessions ``` 确认会话 ID,然后: ``` /to test-session 你好 ``` ### 6. 在 Gemini 中确认 应该看到: ``` 📨 收到新指令: 你好 ``` ### 7. 测试按钮 点击任意按钮,应该看到: ``` ✅ 已执行操作 📤 发送到: `test-session` 💬 指令: ... ``` 然后 Gemini 应该收到指令并执行。 --- ## 💡 最佳实践 ### 1. 始终设置会话 ID ```bash # 推荐:使用项目名作为会话 ID cd /path/to/my-project TELEGRAM_SESSION=my-project gemini --yolo ``` ### 2. 使用 /keep 锁定会话 在 Telegram 中: ``` /keep my-project ``` 之后直接发送消息,无需 `/to`。 ### 3. 监控日志 在另一个终端: ```bash tail -f /tmp/telegram-mcp-server.log ``` 实时查看消息流动。 ### 4. 定期清理 ```bash # 清理过期的按钮动作(自动清理 1 小时前的) python3 << 'EOF' import json import time from pathlib import Path actions_file = Path.home() / ".telegram-mcp-actions.json" if actions_file.exists(): with open(actions_file) as f: actions = json.load(f) current_time = time.time() cleaned = { k: v for k, v in actions.items() if current_time - v.get("timestamp", 0) < 3600 } with open(actions_file, 'w') as f: json.dump(cleaned, f, indent=2) print(f"✅ 清理完成:保留 {len(cleaned)}/{len(actions)} 个动作") EOF ``` --- ## 🆘 仍然无法工作? ### 收集诊断信息 ```bash # 1. 运行诊断脚本 ./debug_gemini.sh > gemini_debug.txt # 2. 收集日志 tail -100 /tmp/telegram-mcp-server.log >> gemini_debug.txt # 3. 收集配置 cat ~/.gemini/settings.json >> gemini_debug.txt # 4. 在 Telegram 中运行 /sessions /status tt # 替换为你的会话 ID ``` ### 提交 Issue 在 GitHub 提交 Issue,附上: 1. `gemini_debug.txt` 文件 2. Gemini 版本:`gemini --version` 3. 截图(Gemini 终端 + Telegram) 4. 详细的操作步骤 https://github.com/batianVolyc/telegram-mcp-server/issues --- ## 📞 快速联系 如果问题紧急,可以: 1. 在 GitHub Issue 中 @batianVolyc 2. 查看 README.md 中的联系方式 --- **记住**:大多数问题都是会话 ID 不匹配或 Telegram Bot 没有运行导致的!

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/batianVolyc/telegram-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server