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

如何使用.NET客户端消费Salesforce变更数据捕获事件

.NET消费Salesforce Change Data Capture事件实操步骤

一、获取服务总线地址与连接凭证

  • 登录Salesforce Setup,搜索Change Data Capture进入配置页,确认目标对象的事件已启用
  • 进入Streaming API相关配置(或直接在Change Data Capture页点击目标事件的订阅入口):
    • 服务总线地址:即CometD端点URL,格式为 wss://<你的Salesforce实例域名>/cometd/<API版本号>,实例域名可从Setup的Company Information中获取(如na123.salesforce.com),API版本建议选最新稳定版(如59.0)
    • 连接凭证:通过OAuth 2.0用户名密码流获取:
      1. 在Setup中创建Connected App,启用OAuth权限,勾选api、web等范围,记录Client ID和Client Secret
      2. 用.NET发起POST请求到 https://<实例域名>/services/oauth2/token,参数包括:
        grant_type=password、client_id=<你的Client ID>、client_secret=<你的Client Secret>、username=<Salesforce账号>、password=<账号密码+安全令牌>
      3. 响应中的access_token就是后续连接所需的凭证

二、.NET端订阅实现

Salesforce CDC基于CometD协议,直接使用NuGet包CometD.Client即可对接,核心代码示例:

using CometD.Client;
using CometD.Client.Transport;
using Newtonsoft.Json.Linq;
using System.Threading.Tasks;

var cometdUrl = "wss://na123.salesforce.com/cometd/59.0";
var accessToken = "<你的OAuth访问令牌>";
var cdcTopic = "/data/AccountChangeEvent"; // 替换为目标对象的ChangeEvent主题

var client = new BayeuxClient(cometdUrl, new LongPollingTransport(null));
client.Headers.Add("Authorization", $"Bearer {accessToken}");

// 发起握手连接
await client.HandshakeAsync();

// 订阅CDC事件
client.Subscribe(cdcTopic, message =>
{
    var eventData = JObject.Parse(message.Data.ToString());
    var changeHeader = eventData["ChangeEventHeader"];
    var changeType = changeHeader["changeType"].ToString();
    var recordIds = changeHeader["recordIds"];

    // 按需处理变更数据
    Console.WriteLine($"[{changeType}] 变更记录ID:{string.Join(",", recordIds)}");
    Console.WriteLine("完整事件数据:\n" + eventData.ToString());
});

// 保持连接(控制台程序示例,后台服务可托管为长期运行任务)
Console.WriteLine("已订阅CDC事件,按任意键退出...");
Console.ReadLine();

// 断开连接
await client.DisconnectAsync();

三、关键注意事项

  • 配置Connected App的信任IP范围:如果你的.NET服务有固定公网IP,需添加到Connected App的Trusted IP Range中,避免连接被拦截
  • 重连逻辑:CometD连接可能因网络波动断开,可通过监听client.Connected、client.Disconnected事件实现自动重连
  • 事件结构查询:可通过Salesforce Workbench的REST Explorer调用/services/data/v<API版本>/sobjects/<对象名称>ChangeEvent/describe,获取完整的事件字段结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:20:50