Я работаю над созданием своего первого скрипта для Hubot, который добавит быструю задачу в Asana.
Я не собираюсь делать что-то слишком сумасшедшее, по крайней мере, так не думал.
В настоящее время у меня есть
url = 'https://app.asana.com/api/1.0'
WORKSPACE = "1111111111111"
user = "xxxxxx.xxxxxxxxxxxxxxxx"
pass = ""
module.exports = (robot) ->
robot.respond /task (.*)/i, (msg) ->
params = {name: "#{msg.match[1]}", workspace: "#{WORKSPACE}"}
stringParams = JSON.stringify params
auth = 'Basic ' + new Buffer("#{user}:#{pass}").toString('base64')
msg.http("#{url}/tasks")
.headers("Authorization": auth, "Content-Length": stringParams.length, "Accept": "application/json")
.query(params)
.post() (err, res, body) ->
console.log(err)
console.log(res)
console.log(body)
msg.send body
Все, что я действительно хочу, это вывод того, что он публикует в рабочей области. Я знаю, что в Asana API есть еще что-то, чтобы все работало правильно, но, наблюдая за хвостом моего журнала, ничего не выводится, ничего не записывается в консоль, ничего не происходит.
Если я сделаю console.log под параметрами, он выведет JSON, и это правильно, но похоже, что сообщение никогда не происходит.
Любое направление было бы здорово!
Спасибо.
ИЗМЕНИТЬ
После еще одной настройки, следование за Дэном было шагом в правильном направлении, удаление .query() и помещение строки в .post() вывод, наконец, правильный.
module.exports = (robot) ->
robot.respond /task (.*)/i, (msg) ->
params = {data:{name: "#{msg.match[1]}", workspace: "#{WORKSPACE}"}}
stringParams = JSON.stringify params
auth = 'Basic ' + new Buffer("#{user}:#{pass}").toString('base64')
msg.http("#{url}/tasks")
.headers("Authorization": auth, "Content-Length": stringParams.length, "Accept": "application/json")
.post(stringParams) (err, res, body) ->
console.log(err)
console.log(res)
console.log(body)
msg.send body
data
объекта верхнего уровня.{data:{parameters:values}}
- person DanRedux   schedule 08.05.2012