从iOS应用程序订阅MailChimp的电子邮件地址

Rog*_*are 6 objective-c mailchimp ios parse-platform mandrill

我在我的应用中添加了一个联系表单,允许用户通过电子邮件直接向我发送反馈.我正在使用Mandrill和Parse,它运行良好!

在联系表单上是一个"将我添加到邮件列表..."选项,如果选中此选项,我正在寻找一种方法将用户的电子邮件自动添加到MailChimp.

我知道有一个MailChimp API可以通过包装器访问Objective C,但我想知道是否有一种更简单的方法可以简单地将电子邮件添加到iOS/Objective C中的MailChimp邮件列表中?

谢谢阅读.


编辑#1:进步,但尚未成功.

1)我已经将这个答案的云代码添加到Parse中(用两个键代替,其中KEY2是MailChimp键的最后三个字符):

var mailchimpApiKey = "MY_MAILCHIMP_KEY";

Parse.Cloud.define("subscribeUserToMailingList", function(request, response) {
    if (!request.params ||
            !request.params.email){
        response.error("Must supply email address, firstname and lastname to Mailchimp signup");
        return;
      }

      var mailchimpData = {
        apikey  : mailchimpApiKey,
        id      : request.params.listid,
        email   : {
          email : request.params.email
        },
        merge_vars : request.params.mergevars
      }

      var url = "https://KEY2.api.mailchimp.com/2.0/lists/subscribe.json";

      Parse.Cloud.httpRequest({
        method: 'POST',
        url: url,
        body: JSON.stringify(mailchimpData),
        success: function(httpResponse) {
          console.log(httpResponse.text);

          response.success("Successfully subscribed");
        },
        error: function(httpResponse) {
          console.error('Request failed with response code ' + httpResponse.status);
          console.error(httpResponse.text);

          response.error('Mailchimp subscribe failed with response code ' + httpResponse.status);
        }
      });

});
Run Code Online (Sandbox Code Playgroud)

2)我已经将这个Objective-C代码添加到我的iOS项目中(添加我的MailChimp列表ID):

[PFCloud callFunctionInBackground:@"subscribeUserToMailingList" withParameters:@{@"listid":@"MY_LIST_ID",@"email":userEmail,@"mergevars":@{@"FNAME":firstName,@"LNAME":lastName}}
                                    block:^(NSString *result, NSError *error){
                                        if (error) {
                                            //error
                                        } else {

                                        }
                                    }];
Run Code Online (Sandbox Code Playgroud)

结果?这个错误:

Error Domain=Parse Code=141 "The operation couldn’t be completed. (Parse error 141.)" … {error=Mailchimp subscribe failed with response code 500, code=141}
Run Code Online (Sandbox Code Playgroud)

编辑#2:更多进步,但尚未成功.

之前的错误是由于尝试将电子邮件地址添加到已经存在的邮件列表中引起的.我现在result在上面的块中没有错误和"成功订阅" .但是,登录MailChimp时,新地址仍然不存在.

Rog*_*are 6

好的,事实证明代码没问题!请使用,分享和享受.

问题是MailChimp(聪明地)需要双重选择加入邮件列表.

  • 一个选择加载是使用特定的代码运行此代码userEmail,它会导致将电子邮件发送给您的待添加用户.
  • 电子邮件要求他们确认他们的订阅,如果他们这样做(这是电子邮件中的链接),那就是第二个选择加入.然后,他们的电子邮件将添加到您的列表中.

因此,底线是代码不会自动将用户添加到您的邮件列表 - 他们仍然需要确认.这是确保邮件列表中的人确实想要在那里(即有机会阅读您的电子邮件)的好方法!