Alamofire Mailchimp API 3.0 订阅

Posted

技术标签:

【中文标题】Alamofire Mailchimp API 3.0 订阅【英文标题】:Alamofire Mailchimp API 3.0 subscribe 【发布时间】:2017-05-05 08:47:47 【问题描述】:

我正在尝试使用 Alamofire 为新用户订阅 Mailchimp 列表。 当我尝试使用 .post 方法和 JSONObject 作为参数订阅新用户时,问题就开始了:

func subscribeMail()

let credentialData = "<my_api_key>".data(using: String.Encoding.utf8)!
let base64Credentials = credentialData.base64EncodedString(options: [])
let headers = ["Authorization": "Basic \(base64Credentials)"]

let url = "https://us11.api.mailchimp.com/3.0/lists/<my_list_id>/members/"

let jsonObj: [String: AnyObject] = [
    "mail_address" : "testMailAddress@gmail.com" as AnyObject,
    "status" : "subscribed" as AnyObject,
]

let valid = JSONSerialization.isValidJSONObject(jsonObj)
print(valid)

Alamofire.request(url, method: .post, parameters: jsonObj , encoding: URLEncoding.default , headers: headers).responseJSONresponse in
    if response.result.isFailure 
       print("Failed") 
    
    else if (response.result.value as? [String: AnyObject]) != nil 
        print(response)
        
    


我返回状态码 400:

SUCCESS: 
detail = "We encountered an unspecified JSON parsing error.";
instance = "";
status = 400;
title = "JSON Parse Error";
type = "http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/";

在 Mailchimp 文档中:

JSONParseError

我们遇到了未指定的 JSON 解析错误。 此错误表示您的 JSON 格式不正确或被视为无效或不完整。

如您所见,我正在检查我的 jsonObj 是否有效。所以我没有得到这个解析错误..

在 Mailchimp API 3.0 中写道,订阅新邮件只需要 email_address 和 status 字段。

如果我尝试使用 .get 方法向 Alamofire 发送请求,其中包含一些已订阅的邮件地址,一切正常,我可以从 Mailchimp 接收所有数据。

我的 jsonObj 真的有问题还是在其他地方?

【问题讨论】:

【参考方案1】:

将对象键从“mail_address”更改为“email_address”并试一试。

let jsonObj: [String: AnyObject] = [
    "email_address" : "testMailAddress@gmail.com" as AnyObject,
    "status" : "subscribed" as AnyObject,
]

【讨论】:

看来我打错了。但无论如何结果都是一样的。 你试过this answer吗?【参考方案2】:

由于您收到 JSONParseError,因此您的问题与您发送参数的格式有关。

尝试encoding: JSONEncoding.default 而不是encoding: URLEncoding.default

【讨论】:

以上是关于Alamofire Mailchimp API 3.0 订阅的主要内容,如果未能解决你的问题,请参考以下文章

如何从 MailChimp 3.0 API 获取兴趣组?

Mailchimp api 3.0错误:“Schema描述对象,找到数组”是代码还是在mailchimp的结尾?

Mailchimp API 3.0 批量订阅 - Mailchimp3 PY

MailChimp API 3.0 无效资源错误

Mailchimp api 3.0 错误:“架构描述了对象,而是找到了数组”是代码还是在 mailchimp 的末尾?

是否可以在 mailchimp API 3.0 中按成员获取细分?