如何处理 Trello webhooks?回报率 API

How to handle Trello webhooks? RoR API

我是后端开发 (RoR) 的新手。对不起我的英语不好。

现在我正在使用 Trello API 并尝试接收(处理)webhook。 我正在使用 ruby-trello gem。我也在使用 ngrok。

我成功创建了 webhook(在 Trello 中)。 现在,当我编辑 Trello 对象(由 webhook 标记)时,我收到了从 Trello 到我的应用程序到 WebhooksController#receive 的请求。

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 请求的 json 以了解后续步骤并编写代码。

有人可以帮忙吗? 先感谢您。 :)

您可以使用 logger.info.

记录来自 Webhook 请求的 JSON 的内容

例如:

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,它将 return 一个 Hash 与您的参数。实际上,request.body.read 没有 return 一个有效格式的对象被解析为 JSON,我认为这是异常的原因。