【发布时间】:2010-04-23 12:17:33
【问题描述】:
我正在使用 MailChimp 的 API 将电子邮件订阅到列表。函数listsubscribe()用于邮件订阅:
public static listSubscribe(string apikey, string id, string email_address, array merge_vars, string email_type, boolean double_optin, boolean update_existing, boolean replace_interests, boolean send_welcome)
我为他们的 API 下载了 MailChimp 的官方 .NET wrapper
在 Visual Studio 中查看时,这是重载函数之一:
listSubscribe(string apikey, string id, string email_address, MCMergeVar[] merges)
当我点击 MCMergeVar[] 的定义时,会出现:
[XmlRpcMissingMapping(MappingAction.Ignore)]
public struct MCMergeVar
{
public string name;
public bool req;
[XmlRpcMissingMapping(MappingAction.Error)]
public string tag;
public string val;
}
在 MailChimp 网站上的一个 php 示例中,merges 变量是这样声明的:
$merge_vars = array('FNAME'=>'Test', 'LNAME'=>'Account', 'INTERESTS'=>'');
如何为我的 C# 包装器正确编写此数组? 我尝试过这样的事情:
MCMergeVar[] subMergeVars = new MCMergeVar[1];
subMergeVars["FNAME"] = "Test User";
但它需要在现在放置"FNAME" 的地方使用int,所以这不起作用...
提前致谢, 伊莱
编辑 1: 我尝试了 FoxFire 的解决方案,但没有来自 subMergeVars 的数据被传递到 MailChimp 服务器,只有电子邮件被传递:
// Subscribe email to list
string subID = "26973e52cc";
string subEmail = "mymail@some.com.hr";
MCMergeVar[] subMergeVars = new MCMergeVar[5];
subMergeVars[0].name = "FNAME";
subMergeVars[0].val = "FNDynamic";
subMergeVars[1].name = "LNAME";
subMergeVars[1].val = "LNDynamic";
mailChimp.api.listSubscribe(subID, subEmail, subMergeVars, "html");
【问题讨论】: