我是后端开发(ROR(的新手。对不起我的英语不好。
现在,我正在与Trello API合作,并尝试接收(处理(Webhooks。我正在使用Ruby-trello Gem。我也在使用ngrok。
我成功创建了Webhooks(在Trello中(。现在,当我编辑trello对象(由webhook标记(时,我有从Trello到我的应用程序到WebHookScontroller#接收的请求。
routes.rb:
post '/webhooks' => 'webhooks#receive', :defaults => { :format => 'json' }
get '/webhooks' => 'webhooks#complete', :defaults => { :format => 'json' }
webhooks_controller.rb
class WebhooksController < ApplicationController
skip_before_action :verify_authenticity_token
@@data = File.read('public/data.json')
def complete
render status: 200
end
def receive
JSON.parse(request.body.read)
render :json => @@data
end
end
但我一直都看到JSON::ParserError (765: unexpected token at ''):
现在我只想查看Webhooks Request的JSON 以了解和代码下一步。
有人可以帮忙吗?先感谢您。:(
您可以使用logger.info
。
例如:
def receive
logger.info "Trello webhook request's JSON: #{params}"
# rest of your code...
end
然后您必须检查日志。可能会在log/production.log
中。
如果您能够使Trello击中本地服务器,则可以调试操作以查看Webhook请求中的JSON中的内容,将debugger
语句放在操作中。
例如:
def receive
debugger
JSON.parse(request.body.read)
render :json => @@data
end
另外,request.body.read
并不是获取参数的最佳方法。您只需致电params
,它将用您的参数返回Hash
。实际上,request.body.read
不会以有效格式返回对象以解析为JSON,我认为这是例外的原因。