MailChimp API 3.0 无效资源错误

Posted

技术标签:

【中文标题】MailChimp API 3.0 无效资源错误【英文标题】:MailChimp API 3.0 Invalid Resource Error 【发布时间】:2017-05-21 09:37:26 【问题描述】:

我只是想向 MailChimp 列表中添加一个新成员。但我不断收到以下错误,不太明白为什么:

type: http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/
title: Invalid Resource
status: 400
detail: The resource submitted could not be validated. For field-specific details, see the 'errors' array.
instance:
errors:
0:
field:
message: Schema describes object, NULL found instead

这很奇怪,因为我正在发送正文中的确切对象,如文档示例中所述:

"email_address":"urist.mcvankab+3@freddiesjokes.com", "status":"subscribed"

我已经在 Postman 和 MailChimp Playground 中尝试过调用。我在这里省略了 JSON 中的某些内容吗?

【问题讨论】:

具有完全相同的错误消息。我已经向他们开放了支持票。希望我能尽快在这里发布解决方案。 我也遇到了同样的问题,有什么解决办法吗? 【参考方案1】:

所以我也被卡住了,结果你需要有“merge_fields”。让它成为一个空对象,


    "email_address": "blahblar@blarblah.com",
    "status": "subscribed",
    "merge_fields": 

【讨论】:

谢谢!希望在文档中按要求进行标记。我想设置 skip_merge_validation 也可以解决问题。 @MattCosentino 考虑到我在 4.5 年前“解决”了这个问题,遗憾的是文档还没有更新以解决这个问题。【参考方案2】:

确保将您的帖子数据编码为 json。例如在python中:

import requests
import json

data = 
  "email_address": "test_email@gmail.com",
  "status": "subscribed",
  "merge_fields": 


result = requests.post(<YOUR URL>, auth=<YOUR AUTH CREDS>, data=json.dumps(data))

【讨论】:

【参考方案3】:

问题出在网址中。您必须在 url 结尾有成员:

  url: 'https://blabla.api.mailchimp.com/3.0/lists/blabla/members',

【讨论】:

【参考方案4】:

我正在使用节点应用程序,这对我有用,而不是使用

 url: 'https://blabla.api.mailchimp.com/3.0/lists/list_id/members'

试试这个 javascript 对象:

const data = 
members:[
email_address: email,
  status: "subscribed",
  merge_fields: 
    FNAME : firstName,
    LNAME : lastName  
  ]
;

并使用网址:

url: "https://us7.api.mailchimp.com/3.0/lists/list_id"

注意:您必须将 JavaScript 对象转换为 JSON

【讨论】:

【参考方案5】:

即使merge_fields 未标记为必填项,也可以绕过要求,将查询参数 skipMergeValidation: true 作为addListMember 请求中的第三个参数传递。您可以在下面查看文档和实现:

向列表中添加新成员。 @param String listId 列表的唯一 ID。 @param module:model/AddListMembers1 正文 @param Object 选择可选参数 @param Boolean opts.skipMergeValidation 如果skip_merge_validation 为真,即使通常需要合并字段,也将接受不带合并字段值的成员数据。这默认为 false。 @return Promise 一个 @link https://www.promisejs.org/|Promise,数据类型为 @link module:model/ListMembers2
this.addListMember = function(listId, body, opts) 
  return this.addListMemberWithHttpInfo(listId, body, opts)
    .then(function(response_and_data) 
      return response_and_data.data;
  );

【讨论】:

以上是关于MailChimp API 3.0 无效资源错误的主要内容,如果未能解决你的问题,请参考以下文章

MailChimp API 3.0 xhr 订阅 501 错误

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

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

MailChimp 错误状态:401 标题:“API 密钥无效”

使用 RestSharp 向 Mailchimp API 3.0 查询帐户详细信息时出现“API 密钥丢失”错误

为啥在连接到 mailchimp API 3.0 时出现 401 错误