You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cognigy.AI中用JavaScript实现Meta用户数据删除回调

Meta用户数据删除回调在Cognigy.AI中的实现方案

以下是针对你提出的四个问题的具体解答:

1. 在Cognigy.AI中实现回调的方式

可以通过**代码节点(Code Node)**实现,Cognigy没有内置专门处理Meta数据删除回调的模块,具体步骤:

  • 在Cognigy Flow中创建独立分支,通过触发条件判断请求是否为Meta的用户数据删除请求(检查请求体中的object=user和field=delete字段)
  • 用代码节点编写JavaScript逻辑,处理Meta的POST请求,执行用户数据删除操作
  • 将Cognigy的Webhook Endpoint(可在集成页面创建专门的Webhook,或复用Messenger集成的Endpoint,但需确保路由区分)配置为Meta的回调URL

2. PHP代码的使用问题

不能直接使用PHP代码,必须改写为JavaScript。Cognigy的代码节点运行在Node.js环境中,仅支持JavaScript代码。需要将Meta官方PHP示例中的核心逻辑(请求签名验证、数据删除执行、响应格式返回)转换为对应的JavaScript实现。

3. status_url的端点选择

选择a) 主网站端点,原因如下:

  • Cognigy的Messenger端点或其他Cognigy特定端点仅用于处理聊天机器人的交互请求,不适合作为持久化的状态查询接口
  • status_url需要返回用户数据删除的实时状态(如completed或in_progress),你需要自己维护这个状态的存储(比如数据库),主网站的后端端点可以方便实现这个功能

4. Transformers的使用建议

不需要使用Transformers。Transformers在Cognigy中的作用是转换不同渠道的消息格式,而Meta的数据删除回调是独立的Webhook请求,与聊天消息交互无关,直接用代码节点处理即可。


代码示例(Cognigy代码节点)

const crypto = require('crypto');

// 1. 验证Meta请求签名(推荐)
const appSecret = '你的Meta应用密钥';
const signature = request.headers['x-hub-signature-256'];
const hmac = crypto.createHmac('sha256', appSecret);
const digest = 'sha256=' + hmac.update(JSON.stringify(request.body)).digest('hex');

if (signature !== digest) {
    response.status(403).send('Invalid request signature');
    return;
}

// 2. 提取待删除的用户ID
const userId = request.body.entry?.[0]?.uid;
if (!userId) {
    response.status(400).send('Missing user ID');
    return;
}

// 3. 执行用户数据删除操作
// 示例:删除Cognigy中的用户数据(需参考Cognigy API文档调整)
try {
    // 删除用户会话数据
    await cognigy.api.sessions.deleteSessionsByUser(userId);
    // 删除用户自定义属性
    await cognigy.api.users.updateUser(userId, { attributes: {} });
    // 如果有第三方存储的用户数据,在此处同步删除
} catch (err) {
    console.error('数据删除失败:', err);
    // 可记录日志,后续重试
}

// 4. 返回Meta要求的JSON响应
response.status(200).json({
    url: `https://你的主网站域名/data-deletion-status?userId=${userId}`,
    confirmation_code: `DEL-${userId}-${Date.now()}`
});

最佳实践

  • 请求签名验证:必须添加签名验证逻辑,防止恶意伪造的删除请求
  • 数据彻底删除:除了Cognigy内部的用户数据,还要同步删除关联的第三方存储(如数据库、CRM系统)中的用户信息
  • 状态端点实现:主网站的status_url端点需返回标准格式的JSON,示例:
    {
        "status": "completed"
    }
    
  • 测试验证:使用Meta开发者平台的Webhook测试工具,模拟数据删除请求,验证回调和状态端点的正确性
  • 日志记录:记录所有数据删除操作的日志,包括用户ID、删除时间、操作结果,用于合规审计
  • 异步处理:如果数据删除耗时较长,可先返回in_progress状态,后续异步完成删除后更新状态

内容的提问来源于stack exchange,提问作者Prithvi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 04:50:00