我正在使用Podio JS NPM模块(podio-js)来更新我的Podio应用程序中的字段。但是,我遇到了一个问题,即该字段只是清空而不是更新到新值,所以它基本上更新为null
。此外,尽管事实上确实发生了某种更新(虽然更新错误),但回调中的console.log()
永远不会运行 - 绝对没有任何日志记录到我的控制台。
这是我正在运行的代码:
podio.isAuthenticated().then(() => {
let url = `/item/${podio_item_id}/value/customer-id`
let requestData = JSON.stringify({data: customer.id})
podio.request('PUT', url, requestData, (responseData) => {
console.log("made it")
console.log(responseData)
})
})
在https://podio.github.io/podio-js/api-requests/提供的文档中,示例requestData
变量的定义如下:
var requestData = { data: true };
然而,我发现在我的代码中使用{data: customer.id}
并没有做任何事情 - 我必须JSON.stringify()
才能让它接近工作。
在早期的尝试中,我能够通过AJAX从我的客户端成功更新Podio - 数据属性需要格式化如下:
data: JSON.stringify({'value': 'true'})
我已经尝试了requestData
可想象的每一个可想象的迭代 - 将其字符串化,用其他单引号进行字符串化(如我的工作示例中所示),将其设置为{data: {value: customer.id}}
等等......
绝对没有任何作用 - 充其量,该字段只是清空,最坏的情况是没有效果......并且没有错误消息来帮助我识别问题。
通过他们的JS SDK向Podio发出PUT
请求的正确格式是什么?
更新
一时兴起,我以为我尝试使用superagent - 以下代码完美运行:
superagent
.put(`https://api.podio.com/item/${podio_item_id}/value/customer-id`)
.set('Authorization', `OAuth2 ${accessToken}`)
.set('Content-Type', 'application/json')
.send(JSON.stringify({'value': `${customer.id}`}))
.end(function(err, res){
if (err || !res.ok) {
console.log(err)
} else {
console.log(res)
}
})
我在原始示例中使用了这种数据的精确格式,与之前的问题相同。
是什么给出了?
答案 0 :(得分:1)
得到它 - 必须格式化我的数据:
let requestData = {'value': `${customer.id}`}
<强>更新强>
另外,值得注意的是podio.request()
方法的回调函数似乎没有使用文档中描述的符号运行。不过,这是一个承诺,所以你可以把它当成一个:
podio.request('PUT', `${url}/scustomer-id`, requestData)
.then((response) => {
//do stuff...
})