C#调用SendinBlue API创建联系人并加入列表报错问题求助
SendinBlue API C# 调用问题解决方案
问题1:Add ApiKey时报“字典中已存在该键”错误
原因是Configuration.Default.ApiKey静态字典中已经存在api-key键,直接调用Add方法遇到重复键就会抛出异常。
修改方案,把原来的Add行替换为以下任意一种写法即可:
- 直接通过索引赋值,有则覆盖无则新增:
sib_api_v3_sdk.Client.Configuration.Default.ApiKey["api-key"] = "你的实际v3 API密钥";
- 先判断存在性再操作:
var apiKeyDict = sib_api_v3_sdk.Client.Configuration.Default.ApiKey; if (apiKeyDict.ContainsKey("api-key")) { apiKeyDict.Remove("api-key"); } apiKeyDict.Add("api-key", "你的实际v3 API密钥");
问题2:调用CreateContact时报“出现一个或多个错误”
这个是外层泛型异常,真实错误信息默认存在内部异常中,首先先修改异常捕获代码,输出完整错误信息定位具体原因:
catch (Exception exc) { // 输出完整异常栈,包括内部异常 Debug.WriteLine(exc.ToString()); Console.WriteLine(exc.ToString()); // 如果是ApiException类型可以直接获取接口返回的错误详情 if (exc is sib_api_v3_sdk.Client.ApiException apiEx) { Debug.WriteLine($"接口错误码:{apiEx.ErrorCode},错误内容:{apiEx.ErrorContent}"); Console.WriteLine($"接口错误码:{apiEx.ErrorCode},错误内容:{apiEx.ErrorContent}"); } Console.ReadLine(); }
常见错误原因和修复方式:
- 代码中使用的
email变量未赋值、格式非法:检查变量是否提前赋值,确保是合法邮箱格式 - 列表ID
2不存在:登录SendinBlue后台确认你要加入的联系人列表的真实ID,和代码中填写的一致 - 对应邮箱已经存在于联系人列表,且字段规则冲突:如果不需要更新已有联系人可以把
updateEnable设为false,或者确认更新逻辑符合后台字段限制 attributes中包含后台未定义的自定义属性:如果没有需要传递的自定义属性,直接把attributes参数设为null即可
内容的提问来源于stack exchange,提问作者ElliotCK
相关产品推荐
相关产品推荐

