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

时间:2014-12-01 21:04:03

标签: ios objective-c parse-platform mailchimp mandrill

我在我的应用中添加了一个联系表单,允许用户通过电子邮件直接向我发送反馈。我使用的是Mandrill和Parse,效果很好!

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

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

感谢阅读。


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

1)我已将此answer的云代码添加到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);
        }
      });

});

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 {

                                        }
                                    }];

结果?此错误:

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

编辑#2:取得更多进展,但尚未成功。

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

1 个答案:

答案 0 :(得分:6)

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

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

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

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