# 测试企业微信群聊 - wrgKCxBwAALwOgUC9jMwdHiVTFmyXs_A ## 🎯 使用你的企微群聊ID测试 ### 方法1:直接访问URL(如果Parse中已有记录) ``` http://localhost:4200/wxwork/cDL6R1hgSi/chat-activation/wrgKCxBwAALwOgUC9jMwdHiVTFmyXs_A ``` ### 方法2:在控制台创建/查询群聊记录 打开浏览器控制台(F12),运行以下脚本: ```javascript (async () => { try { const cid = 'cDL6R1hgSi'; const wxworkChatId = 'wrgKCxBwAALwOgUC9jMwdHiVTFmyXs_A'; // 你的企微群聊ID const userid = 'woAs2qCQAAGQckyg7AQBxhMEoSwnlTvg'; // 配置localStorage localStorage.setItem('company', cid); localStorage.setItem(`${cid}/USERINFO`, JSON.stringify({ userid: userid, errcode: 0, errmsg: 'ok', cid: cid })); console.log('✅ localStorage配置成功'); // 导入Parse const { FmodeParse } = await import('fmode-ng/parse'); const Parse = FmodeParse.with('nova'); console.log('🔍 查询群聊记录...'); // 1. 先查询Parse数据库中是否已有记录 const query = new Parse.Query('GroupChat'); query.equalTo('chat_id', wxworkChatId); query.equalTo('company', { __type: 'Pointer', className: 'Company', objectId: cid }); query.include('project'); let groupChat = await query.first(); if (groupChat) { console.log('✅ 找到现有群聊记录:', { objectId: groupChat.id, chat_id: groupChat.get('chat_id'), name: groupChat.get('name'), memberCount: (groupChat.get('member_list') || []).length }); const url = `http://localhost:4200/wxwork/${cid}/chat-activation/${groupChat.id}`; await navigator.clipboard.writeText(url); alert(`✅ 找到群聊记录!地址已复制\n\n群聊名称: ${groupChat.get('name')}\n\n${url}\n\n点击确定后自动打开...`); setTimeout(() => window.open(url, '_blank'), 500); } else { console.log('⚠️ Parse数据库中未找到记录,正在创建...'); // 2. 创建新的群聊记录 const GroupChat = Parse.Object.extend('GroupChat'); const newGroupChat = new GroupChat(); newGroupChat.set('chat_id', wxworkChatId); newGroupChat.set('name', '企微群聊 - ' + new Date().toLocaleString('zh-CN')); newGroupChat.set('company', { __type: 'Pointer', className: 'Company', objectId: cid }); newGroupChat.set('member_list', []); // 企微API会同步 newGroupChat.set('data', { createdFrom: 'test-script', createdAt: new Date(), wxworkChatId: wxworkChatId }); groupChat = await newGroupChat.save(); console.log('✅ 群聊记录已创建:', { objectId: groupChat.id, chat_id: groupChat.get('chat_id') }); const url = `http://localhost:4200/wxwork/${cid}/chat-activation/${groupChat.id}`; await navigator.clipboard.writeText(url); alert(`✅ 群聊记录已创建!地址已复制\n\n${url}\n\n页面会自动从企微API同步群聊信息\n\n点击确定后自动打开...`); setTimeout(() => window.open(url, '_blank'), 500); } } catch (e) { console.error('❌ 错误:', e); alert('❌ 发生错误: ' + e.message + '\n\n请确保:\n1. 项目已启动\n2. Parse Server已连接'); } })(); ``` --- ## 🔧 代码更新说明 我已经更新了 `chat-activation.component.ts`,现在支持: ### 1. 双重查询机制 ```typescript // 方式1:通过Parse objectId查询 gcQuery.equalTo('objectId', this.chatId); // 方式2:通过企微chat_id查询 gcQuery.equalTo('chat_id', this.chatId); gcQuery.equalTo('company', { __type: 'Pointer', className: 'Company', objectId: this.cid }); ``` ### 2. 企微API同步 ```typescript async syncFromWxwork() { // 调用企微API获取最新信息 const chatInfo = await this.wecorp.externalContact.groupChat.get(chatIdValue); // 更新群聊名称、成员列表等 this.groupChat.set('name', chatInfo.group_chat.name); this.groupChat.set('member_list', chatInfo.group_chat.member_list); // 保存到Parse数据库 await this.groupChat.save(); } ``` ### 3. 自动创建记录 ```typescript async createFromWxwork() { // 如果Parse中没有记录,从企微API获取并创建 const chatInfo = await this.wecorp.externalContact.groupChat.get(this.chatId); // 创建新的GroupChat记录 const newGroupChat = new GroupChat(); newGroupChat.set('chat_id', this.chatId); newGroupChat.set('name', chatInfo.group_chat.name); // ... 保存到Parse } ``` --- ## 📋 测试步骤 ### 步骤1:启动项目 ```bash cd yss-project npm start ``` ### 步骤2:访问浏览器 ``` http://localhost:4200 ``` ### 步骤3:打开控制台(F12) ### 步骤4:运行上面的脚本 脚本会: 1. ✅ 配置localStorage(使用你的密钥) 2. 🔍 查询Parse数据库中是否有该群聊记录 3. 📝 如果没有,自动创建记录 4. 📋 复制测试URL到剪贴板 5. 🚀 自动打开测试页面 ### 步骤5:页面会自动: 1. 从Parse加载群聊基本信息 2. 调用企微API同步最新数据(成员、名称等) 3. 显示群聊信息和消息列表 --- ## ⚠️ 关于企微API权限 ### 企微API可能的限制: 1. **需要配置应用权限** - 客户联系 → 客户群管理权限 - 需要在企微后台配置 2. **API调用限制** - 每个应用有调用频率限制 - 需要正确的access_token 3. **数据访问范围** - 只能访问应用可见范围内的群聊 - 需要群主或管理员权限 ### 如果企微API调用失败: 页面会: - ⚠️ 显示警告但不阻塞 - 📦 使用Parse缓存的数据继续显示 - 💾 可以手动添加测试数据到Parse --- ## 🔍 调试信息 打开控制台可以看到详细的日志: ``` 📥 开始加载数据... 📋 参数: { cid: 'cDL6R1hgSi', chatId: 'wrgKCxBwAALwOgUC9jMwdHiVTFmyXs_A' } 🔍 查询群聊... ✅ 找到群聊: XXX群聊 📊 群聊信息: { objectId: 'xxx', chat_id: 'wrgKCxBwAALwOgUC9jMwdHiVTFmyXs_A', ... } 🔄 从企微API同步群聊信息, chat_id: wrgKCxBwAALwOgUC9jMwdHiVTFmyXs_A ✅ 企微API返回数据: { name: 'xxx', member_list: [...] } ``` --- ## 🎯 直接测试URL 如果Parse中已有记录,可以直接访问: ``` http://localhost:4200/wxwork/cDL6R1hgSi/chat-activation/wrgKCxBwAALwOgUC9jMwdHiVTFmyXs_A ``` 页面会: 1. 先尝试通过 `objectId` 查询 2. 如果失败,通过 `chat_id` 查询 3. 如果还是失败,尝试从企微API创建记录 --- **现在运行上面的脚本开始测试吧!** 🚀