我正在尝试通过JSON从Web服务接收请求,如果令牌正确以及其他一些标识信息,则发回成功的响应消息,否则发送正确的错误消息
^([^_]*_)[^_]*
发送钩子的服务(Zapier)表示它发送成功,但我没有回复任何有意义的数据,我可以使用它。我相信我的回复格式是错误的,但我不确定如何。
答案 0 :(得分:2)
根据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
如果您想设置状态代码,老实说,最简单的方法是在返回之前随时使用函数status(400)
。话虽如此,401
可能是Unauthorized", rather than
400`所需的代码。无论哪种方式,zapier都会将该运行标记为错误。
如果您有任何其他问题,请告诉我!