Я использую модуль 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()
это сделать, чтобы хоть немного приблизиться к работе.
В более ранней попытке сделать это я смог успешно обновить Podio через AJAX от моего клиента - атрибут данных должен был быть отформатирован следующим образом:
data: JSON.stringify({'value': 'true'})
Я пробовал все мыслимые итерации requestData
вообразимого - структурировал его, привязывая к дополнительным одинарным кавычкам (как в моем рабочем примере), устанавливая его как {data: {value: customer.id}}
и т. Д.
Абсолютно ничего не работает - в лучшем случае поле просто пустеет, в худшем - нет никакого эффекта ... и никаких сообщений об ошибках, которые помогли бы мне определить проблему.
Как правильно форматировать PUT
запрос к Podio через их JS SDK?
ОБНОВЛЕНИЕ
По прихоти я подумал, что попробую использовать суперагент - следующий код работает отлично:
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)
}
})
Я использовал это точное форматирование данных и в моем исходном примере, та же проблема, что и раньше.
Что дает?