我们的本地Hubot("Sparky")运行大量插件脚本,通常运行良好。我正在编写一个插件脚本,它对Yahoo Pipes进行GET调用,并期望得到JSONP。但是,我不确定_callback
参数使用什么。代码:
module.exports = (robot) ->
robot.hear /bkeywordb/i, (msg) ->
robot.http("http://pipes.yahoo.com/pipes/pipe.run")
.query({
_id: "legit-pipe-id-is-here",
_render: "json",
_callback: "?"
})
.get() (err, res, body) ->
if body?
data = JSON.parse(body)
这得到的错误是:
undefined:1
_({"count":10,"value":{"title":"correct title","description":"Pipes Output","lin
^
SyntaxError: Unexpected token _
at Object.parse (native)
at e:nodesparkyscriptsplugin-name.coffee:26:11, <js>:11:23
at IncomingMessage.<anonymous> (e:nodesparkynode_moduleshubotnode_modulesscoped-http-clientlibindex.js:70:20)
at IncomingMessage.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
我已经验证了在使用jQuery的ajax函数时管道是否正常工作,但在这种情况下,jQuery会设置自己的回调。
我刚刚意识到我不需要使用JSONP,所以我不需要_callback
参数。当你不在浏览器中时,常规JSON可以很好地工作,duh:
module.exports = (robot) ->
robot.hear /bkeywordb/i, (msg) ->
robot.http("http://pipes.yahoo.com/pipes/pipe.run")
.query({
_id: "legit-pipe-id-is-here",
_render: "json"
})
.get() (err, res, body) ->
if body?
data = JSON.parse(body)