您好,以下是我对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' } }
答案 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身份验证过程的一部分。
希望这对某人有帮助