现象:
现象:
project应用配置到suiteMapWxworkSDKServicewxworkSDKService到constructorngOnInit中初始化SDKcd e:\yinsanse\yss-project
ng build yss-project --base-href=/dev/yss/
等待输出:
✔ Browser application bundle generation complete.
✔ Copying assets complete.
✔ Index html generation complete.
Build at: 2025-11-30T05:43:00.000Z
.\deploy.ps1
等待输出:
Succeed count: 4042
Task id: xxx
deploy.ps1会自动执行,等待输出:
{
"refresh_task": "xxxxxx"
}
重要:CDN缓存刷新需要3-5分钟生效
❌ 错误入口:
✅ 正确入口:
验证:URL应该包含/wxwork/cDL6R1hgSi/project/
打开浏览器控制台(F12),应该看到:
🚀 StageDeliveryComponent 初始化...
📋 初始化参数: {cid: "cDL6R1hgSi", projectId: "xxx"}
🔐 初始化企业微信SDK...
🔍 [registerCorpWithSuite] 开始注册JSSDK...
🔍 [registerCorpWithSuite] 平台检测: wxwork
🔍 [registerCorpWithSuite] corpId: wpAs2qCQAAYofoUhMXBDS8L7z1YCXHYw
🔍 [registerCorpWithSuite] agentId: 1000017
🔍 [registerCorpWithSuite] suiteId: dk2559ba758f33d8f5
🔍 [registerCorpWithSuite] url: https://app.fmode.cn/...
🔍 [registerCorpWithSuite] 获取签名...
🔍 [registerCorpWithSuite] Ticket: ...
🔍 [registerCorpWithSuite] 签名生成完成
✅ [registerCorpWithSuite] AgentConfig注册成功! ← 必须看到这个!
✅ 企业微信SDK初始化成功
如果15秒后看到:
⚠️ [registerCorpWithSuite] 注册超时(15秒)
说明:
解决:关闭应用,重新从群聊侧边栏打开!
控制台应该显示:
👤 当前用户: Profile对象
👤 用户ID: xxx
👤 用户姓名: 脑控徐福静 ← 应该显示真实姓名
如果显示"未知":
// 检查stage-delivery.component.ts的ngOnInit中
if (!this.currentUser && this.cid) {
const wxwork = new WxworkAuth({ cid: this.cid, appId: 'project' });
this.currentUser = await wxwork.currentProfile();
console.log('👤 当前用户:', this.currentUser);
console.log('👤 用户姓名:', this.currentUser?.get('name'));
}
预期控制台日志:
📤 [发送消息] 开始发送...
🔍 [sendToWxwork] ========== 开始发送流程 ==========
🔍 [sendToWxwork] 企业微信环境检测: true
🔍 [sendToWxwork] 检查SDK初始化状态...
✅ [sendToWxwork] SDK已初始化,跳过重复初始化
📧 准备发送消息到企业微信...
🔍 [sendChatMessage] ========== 开始发送消息 ==========
🔍 [sendChatMessage] 消息类型: text
🔍 [sendChatMessage] 开始注册JSSDK...
✅ [sendChatMessage] URL未变化,使用缓存的注册状态
🔍 [sendChatMessage] JSSDK注册结果: true
🔍 [sendChatMessage] 调用ww.sendChatMessage...
✅ [sendChatMessage] 消息发送成功! ← 必须看到这个!
✅ 文本消息已发送
✅ 消息发送成功!
群聊中应该看到:
老师我这里硬装模型做好了,看下是否有问题,如果没有,我去做渲染
✅ 成功标志:群聊中显示消息
排查步骤:
检查URL:应该包含 /wxwork/cDL6R1hgSi/project/
✅ 正确:https://app.fmode.cn/dev/yss/#/wxwork/cDL6R1hgSi/project/project-detail/xxx
❌ 错误:https://app.fmode.cn/dev/yss/#/admin/project-detail/xxx
控制台搜索:"AgentConfig注册成功"
✅ 看到 → 继续下一步
❌ 没看到 → 重新从群聊侧边栏打开
控制台搜索:"注册超时"
✅ 看到 → 说明回调未触发,检查入口和权限
❌ 没看到 → 继续下一步
控制台搜索:"调用ww.sendChatMessage"
✅ 看到 → 继续下一步
❌ 没看到 → 说明注册失败,检查上面步骤
控制台搜索:"消息发送成功" 或 "消息发送失败"
✅ 成功 → 检查群聊中是否显示
❌ 失败 → 查看错误详情
错误信息:
❌ [sendChatMessage] 消息发送失败!
errMsg: "sendChatMessage:fail no permission"
解决方案:
错误信息:
errMsg: "sendChatMessage:fail not in session"
解决方案:
/wxwork/路径检查:
// 在stage-delivery.component.ts的ngOnInit中添加
console.log('👤 检查当前用户...');
console.log(' currentUser:', this.currentUser);
console.log(' cid:', this.cid);
if (!this.currentUser && this.cid) {
console.log('👤 开始获取当前用户...');
const wxwork = new WxworkAuth({ cid: this.cid, appId: 'project' });
this.currentUser = await wxwork.currentProfile();
console.log('👤 用户获取完成:', this.currentUser);
console.log('👤 用户姓名:', this.currentUser?.get('name'));
}
如果仍然为"未知":
name字段是否有值必须包含:
suiteMap中有project配置registerCorpWithSuite有15秒超时getDefaultApiList包含sendChatMessage必须包含:
import { WxworkSDKService } from '../../../services/wxwork-sdk.service'; // Line 15
constructor(
// ...
private wxworkSDKService: WxworkSDKService // Line 289
) {}
async ngOnInit() {
this.cid = this.route.parent?.snapshot.paramMap.get('cid') || '';
// 🔥 必须有这段
if (this.cid) {
console.log('🔐 初始化企业微信SDK...');
try {
await this.wxworkSDKService.initialize(this.cid, 'project');
console.log('✅ 企业微信SDK初始化成功');
} catch (error) {
console.error('❌ 企业微信SDK初始化失败:', error);
}
}
// ... 其他初始化
}
必须包含:
// 🔥 检查SDK是否已初始化(避免重复初始化)
if (!this.wxworkService.cid || this.wxworkService.cid !== cid) {
await this.wxworkService.initialize(cid, appId);
} else {
console.log('✅ SDK已初始化,跳过重复初始化');
}
wxwork-sdk.service.ts(添加超时和日志)stage-delivery.component.ts(注入SDK并初始化)delivery-message.service.ts(避免重复初始化)ng build成功完成.\deploy.ps1成功完成/wxwork/cDL6R1hgSi/project/为什么:sendChatMessage只在群聊会话上下文中工作
路径:
群聊 → 右上角"..." → 应用
为什么:只有注册成功才能调用sendChatMessage
检查:
控制台搜索:"AgentConfig注册成功"
为什么:新代码需要CDN刷新才能生效
时间:3-5分钟
为什么:超时机制会在15秒后返回false
检查:
从"开始注册JSSDK"到"AgentConfig注册成功"应该<15秒
# 1. 切换到项目目录
cd e:\yinsanse\yss-project
# 2. 构建并部署(deploy.ps1会执行所有步骤)
.\deploy.ps1
# 3. 等待5分钟
# 4. 从群聊侧边栏重新打开应用测试
提供以下信息:
文档创建时间:2025-11-30 13:50
部署类型:完整部署
预计生效时间:5分钟后
关键检查点:AgentConfig注册成功 + 群聊中显示消息