私は、Asanaにすばやいタスクを追加する最初のHubotスクリプトを作成するために取り組んでいます。
私はあまりにも狂ったことをしていないか、少なくとも私がいないと思っていません。Asahanaと統合されたHubotスクリプト
現在、私は、私は本当にそれがしたいすべてが、それは、ワークスペースへの投稿だということである出力
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には、すべて正常に動作するようになっていますが、ログの末尾を見て、何も出力していない、何もコンソールにログを記録していない、何も起こっていません。
paramsの下でconsole.logを実行すると、JSONが出力されますが、正しいですが、ポストが起こっていないようです。
いずれの方向もすばらしいでしょう。
ありがとうございました。ダン以下
EDITいくつかのより多くの微調整後
は、(.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}}' – DanRedux
ありがとう@DanRedux、私はそのショットを与えましたが、何も変更しませんでした。 :/ – LostInQuery
ちょっとした調整の後、ついにそれはうまくいった。ポインタありがとう! – LostInQuery