发送JSON Webhook响应

时间:2017-06-01 21:13:36

标签: json ruby sinatra httparty zapier

我正在尝试通过JSON从Web服务接收请求,如果令牌正确以及其他一些标识信息,则发回成功的响应消息,否则发送正确的错误消息

^([^_]*_)[^_]*

发送钩子的服务(Zapier)表示它发送成功,但我没有回复任何有意义的数据,我可以使用它。我相信我的回复格式是错误的,但我不确定如何。

1 个答案:

答案 0 :(得分:2)

来自Zapier Platform团队的David来自这里。

根据sinatra docs,您可以返回:

  

包含三个元素的数组:[status(Fixnum),header(Hash),response body(响应#each)]

因此,您不会向内容类型发送任何提示,也不会向主体发送字符串。这是有效的,你的钩子成功了,但你可以做得更好!

Zapier将传出挂钩的响应解析为JSON,因此最好将其发回。

我刚刚测试了以下示例:

require 'sinatra'
require 'json'

get '/' do
  'hello world!'
end

post '/hook' do
  {message: 'great!'}.to_json
end

我的回答被解析了! enter image description here

如果您想设置状态代码,老实说,最简单的方法是在返回之前随时使用函数status(400)。话虽如此,401可能是Unauthorized", rather than 400`所需的代码。无论哪种方式,zapier都会将该运行标记为错误。

如果您有任何其他问题,请告诉我!