Aweber:“缺少必填参数:[电子邮件]”

时间:2018-12-10 07:27:29

标签: aweber

您好,以下是我对Aweber创建订户的请求输入

{ body: '{"tags":[1,2],"email":"<email_id>","ws.op":"create"}',
  method: 'POST',
  uri: 'https://api.aweber.com/1.0/accounts/<accountID>/lists/<list id>/subscribers',
  headers: 
   { Authorization: 'OAuth oauth_consumer_key="<consumer key>",oauth_nonce="<oauth_nonce>",oauth_signature_method="<signature>",oauth_timestamp="<timstamp>",oauth_version="1.0",oauth_token="<token>",oauth_signature="<oauth signature>',
     'Content-Type': 'application/x-www-form-urlencoded' } }

我在体内传递电子邮件,但仍然出现错误

{ error: 
 { status: 400,
 documentation_url: 'https://labs.aweber.com/docs/troubleshooting#badrequest',
 message: 'Missing required argument: [email]',
 type: 'MissingArgumentError' } }

2 个答案:

答案 0 :(得分:0)

在AWeber的API中,丢失的电子邮件错误的含义完全相同,一旦到达AWeber,电子邮件就会从您的请求中丢失。

听起来您的请求中的内容可能未正确编码或未正确包含。如果在发送请求前先打印出请求正文,它的外观是什么?您是否正在发送内容类型为application / json的数据?

此外,OAuth签名是否正确形成?我们强烈建议您使用图书馆来为您提供帮助。这些将帮助您使用所有适当的签名对请求进行编码,以确保数据正确地发送给我们。

AWeber提供了创建订户的PHP和Python示例,虽然您可能不使用这些语言,但是您也许可以使用它们来找出错误的出处。这些在这里可用: https://api.aweber.com/#tag/Manage-a-Subscriber

答案 1 :(得分:0)

我认为问题可能出在您的'Content-Type'标头上。根据文档Add subscriber,您必须通过以下方式设置标题:

headers = {
  'Accept': 'application/json',
  'Content-Type': 'application/json',
  'Authorization': "Bearer #{access_token}"
}

使用application/json代替application/x-www-form-urlencoded,但也使用'Accept': 'application/json'。我只是将x-www-form-urlencoded用作Oauth身份验证过程的一部分。

希望这对某人有帮助