Skip to main content
Glama
leeguooooo
by leeguooooo
deploy_http_workflow.py3.93 kB
#!/usr/bin/env python3 """ 部署 HTTP API 工作流到 n8n """ import json import os import sys from pathlib import Path # 添加项目根目录到 Python 路径 repo_root = Path(__file__).resolve().parents[1] sys.path.insert(0, str(repo_root)) # 加载 .env 文件 try: from dotenv import load_dotenv env_path = repo_root / '.env' if env_path.exists(): load_dotenv(env_path) print(f"📝 已加载 .env 文件\n") except ImportError: pass from scripts.setup_n8n_workflow import N8NWorkflowManager def main(): """部署 HTTP 工作流""" print("🚀 部署 HTTP API 工作流到 n8n\n") # 获取配置 n8n_url = os.getenv('N8N_URL', 'https://n8n.ifoodme.com') n8n_api_key = os.getenv('N8N_API_KEY') if not n8n_api_key: print("❌ 错误: 未设置 N8N_API_KEY") print("\n请设置:") print(" export N8N_API_KEY='your_api_key'") sys.exit(1) print(f"⚙️ 配置:") print(f" n8n URL: {n8n_url}") print(f" API Key: {'*' * 20}{n8n_api_key[-8:]}") print() # 创建管理器 manager = N8NWorkflowManager(n8n_url, n8n_api_key) # 测试连接 print("🔍 测试 n8n 连接...") if not manager.test_connection(): print("❌ 连接失败") sys.exit(1) # 读取 HTTP 工作流 workflow_file = repo_root / 'n8n' / 'email_monitoring_http_workflow.json' print(f"\n📁 读取工作流: {workflow_file}") with open(workflow_file, 'r', encoding='utf-8') as f: workflow_data = json.load(f) workflow_name = workflow_data.get('name', '智能邮件监控与通知 (HTTP API)') print(f" 工作流名称: {workflow_name}") # 检查是否存在旧工作流 existing = manager.find_workflow_by_name(workflow_name) if existing: print(f"\n⚠️ 发现同名工作流 (ID: {existing['id']})") print(" 将删除并重新创建...") if manager.delete_workflow(existing['id']): print(" ✅ 旧工作流已删除") else: print(" ⚠️ 删除失败,继续创建...") # 创建新工作流 print(f"\n📤 创建工作流: {workflow_name}") result = manager.create_workflow(workflow_data) if result: workflow_id = result.get('id') print(f"\n✅ 工作流部署成功!") print(f" ID: {workflow_id}") print(f" 名称: {workflow_name}") print(f" URL: {n8n_url}/workflow/{workflow_id}") print(f"\n🔒 重要: 在 n8n 中设置环境变量") print(f" 1. 访问 n8n: {n8n_url}/settings/environments") print(f" 2. 添加以下环境变量:") print(f"") print(f" 变量名: EMAIL_API_URL") print(f" 变量值: 你的邮件 API 基础地址(不要包含 /api/xxx 路径)") print(f" 示例: https://your-domain.com") print(f" ⚠️ 注意:只填域名,具体端点由工作流自动拼接") print(f"") print(f" 变量名: EMAIL_API_KEY") print(f" 变量值: 你的 API 密钥") print(f" 生成: openssl rand -hex 32") print(f"") print(f" 3. 保存环境变量") print(f"\n📝 然后:") print(f" 1. 访问工作流: {n8n_url}/workflow/{workflow_id}") print(f" 2. 测试工作流: 点击 'Execute Workflow'") print(f" 3. 激活工作流: 点击右上角的开关") print(f"\n⚠️ 安全提示:") print(f" - 不要在代码中硬编码 API 地址") print(f" - 使用 n8n 环境变量存储敏感信息") print(f" - 确保 API 服务有适当的访问控制") return 0 else: print("\n❌ 工作流部署失败") return 1 if __name__ == "__main__": sys.exit(main())

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/leeguooooo/email-mcp-service'

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