无法从 Squareup 收到正确答案 API

Can't receive correct answer from Squareup API

我正在尝试向 Square 发送 post 消息以创建项目

var postData = {
        "name": "Milkshake",
        "variations": [
                        {
                            "name": "Small",
                            "pricing_type": "FIXED_PRICING",
                            "price_money": {
                                                "currency_code": "USD",
                                                "amount": 400
                                            }
                        }
                    ]}

request.post({
uri:"https://connect.squareup.com/v1/me/items",
headers:{'Authorization': 'Bearer ' + access_token,
             'Accept':        'application/json',
             'Content-Type':  'application/json'},
body: querystring.stringify(postData)
},function(err,res,body){
    console.log(res.statusCode);
    console.log(body); });

但是我从 Square 收到了这条消息

{"type":"bad_request","message":"invalid json"}

您收到错误是因为您使用了 querystring.stringify,它生成了 URL 编码的请求正文。您希望 JSON.stringify 生成一个 JSON 编码的正文。即:

request.post({
uri:"https://connect.squareup.com/v1/me/items",
headers:{'Authorization': 'Bearer ' + access_token,
             'Accept':        'application/json',
             'Content-Type':  'application/json'},
body: JSON.stringify(postData)
},function(err,res,body){
    console.log(res.statusCode);
    console.log(body); });