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

如何使用C#调用Salesforce API获取数据?

C# 调用 Salesforce API 按邮箱查询联系人示例

前置依赖准备

  • 先在 Salesforce 后台创建 Connected App,获取Client ID、Client Secret,同时准备好Salesforce实例域名、有权限的访问账号、账号密码+安全令牌
  • 通过NuGet安装官方Force.com客户端库:Install-Package Salesforce.Force

完整代码示例

using Salesforce.Common;
using Salesforce.Force;
using System;
using System.Threading.Tasks;

class SalesforceContactQueryDemo
{
    // 替换为你自己的Salesforce相关配置
    private const string ClientId = "你的Connected App Client ID";
    private const string ClientSecret = "你的Connected App Client Secret";
    private const string Username = "你的Salesforce登录账号";
    // 密码拼接规则:账号密码+安全令牌,不需要分隔符
    private const string PasswordAndToken = "你的账号密码你的安全令牌";
    private const string SalesforceInstanceUrl = "你的Salesforce实例域名,比如https://na123.salesforce.com";

    static async Task Main(string[] args)
    {
        // 1. 身份认证获取Access Token
        var authClient = new AuthenticationClient();
        await authClient.UsernamePasswordAsync(ClientId, ClientSecret, Username, PasswordAndToken, SalesforceInstanceUrl + "/services/oauth2/token");

        // 2. 初始化ForceClient
        var client = new ForceClient(authClient.InstanceUrl, authClient.AccessToken, "v57.0"); // 版本号可以替换为你用的Salesforce API版本

        // 3. 构造SOQL查询语句,按指定邮箱查询联系人
        string targetEmail = "test@example.com"; // 替换为你要查询的目标邮箱
        string soql = $"SELECT Id, Name, Email, Phone, AccountId FROM Contact WHERE Email = '{targetEmail}' LIMIT 1";

        // 4. 执行查询
        var result = await client.QueryAsync<Contact>(soql);

        // 5. 处理查询结果
        if (result.TotalSize > 0)
        {
            var contact = result.Records[0];
            Console.WriteLine($"查询到联系人:ID={contact.Id}, 姓名={contact.Name}, 邮箱={contact.Email}, 电话={contact.Phone}");
        }
        else
        {
            Console.WriteLine("未找到对应邮箱的联系人");
        }
    }
}

// Contact实体类,和SOQL查询的字段对应
public class Contact
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public string Phone { get; set; }
    public string AccountId { get; set; }
}

注意事项

  • 上述代码示例的API版本v57.0可根据你实际使用的Salesforce环境版本调整
  • SOQL查询要注意特殊字符转义,避免注入风险,生产环境建议使用参数化查询逻辑
  • Access Token默认有效期2小时,过期后需要重新调用认证接口获取新的token
  • 如果需要处理邮箱重复的场景,去掉SOQL中的LIMIT 1即可返回所有匹配的联系人记录
  • 确保操作账号拥有Contact对象的读取权限,否则会返回权限拒绝错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:45:07