Как обращаться с Trello? RoR API - PullRequest
0 голосов
/ 07 мая 2019

Я новичок в бэкэнд-разработке (RoR).Извините за мой английский.

Сейчас я работаю с Trello API и пытаюсь получить (обработать) webhooks.Я использую рубиновый камень.Также я использую ngrok.

Я успешно создал webhooks (в Trello).Теперь, когда я редактирую объект Trello (отмеченный webhook), у меня есть запрос от Trello к моему приложению к WebhooksController # receive.

rout.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 ''):

Сейчас Я просто хочу увидеть json запроса webhooks для понимания и кодирования следующих шагов.

Может кто-нибудь помочь, пожалуйста?Заранее спасибо.:)

1 Ответ

1 голос
/ 07 мая 2019

Вы можете регистрировать то, что приходит из JSON запроса webhook, используя logger.info.

Например:

def receive
  logger.info "Trello webhook request's JSON: #{params}"
  # rest of your code...
end

Тогда вы должны проверить свои журналы. Вероятно, это будет в log/production.log.

Если вы можете заставить Trello работать с вашим локальным сервером, вы можете отладить свое действие, чтобы увидеть, что в JSON запроса веб-крюка помещает в действие оператор debugger.

Например:

def receive
  debugger
  JSON.parse(request.body.read)
  render :json => @@data
end

Кроме того, request.body.read - не лучший способ получить ваши параметры. Вы можете просто позвонить params, и он вернет Hash с вашими параметрами. На самом деле, request.body.read не возвращает объект в допустимом формате для анализа в JSON, я думаю, что это является причиной исключения.

...