Ruby on rails Withings API:回调URL未知或无效

Ruby on rails Withings API:回调URL未知或无效,ruby-on-rails,ruby,withings,Ruby On Rails,Ruby,Withings,我正在尝试在withings API中设置通知(使用withings simplificator gem)。无论我输入什么URL或是否对其进行编码,我都会遇到此错误: irb(main):013:0> user.subscribe_notification('http://foo.bar.com', 'test subscription') Withings::ApiError: The callback URL 'http://foo.bar.com' is either unknown

我正在尝试在withings API中设置通知(使用withings simplificator gem)。无论我输入什么URL或是否对其进行编码,我都会遇到此错误:

irb(main):013:0> user.subscribe_notification('http://foo.bar.com', 'test subscription')
Withings::ApiError: The callback URL 'http://foo.bar.com' is either unknown or invalid - Status code: 293
  from /app/vendor/bundle/ruby/2.2.0/gems/simplificator-withings-0.7.0/lib/withings/connection.rb:80:in `verify_response!'
  from /app/vendor/bundle/ruby/2.2.0/gems/simplificator-withings-0.7.0/lib/withings/connection.rb:22:in `get_request'
  from /app/vendor/bundle/ruby/2.2.0/gems/simplificator-withings-0.7.0/lib/withings/connection.rb:27:in `get_request'
  from /app/vendor/bundle/ruby/2.2.0/gems/simplificator-withings-0.7.0/lib/withings/user.rb:26:in `subscribe_notification'
  from (irb):13
  from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.4/lib/rails/commands/console.rb:110:in `start'
  from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.4/lib/rails/commands/console.rb:9:in `start'
  from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:68:in `console'
  from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.4/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
  from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.4/lib/rails/commands.rb:17:in `<top (required)>'
  from bin/rails:8:in `require'
  from bin/rails:8:in `<main>'
同样的错误:

irb(main):051:0>   JSON.parse(response.body)
=> {"status"=>293}

我做错了什么?

在安装过程中,您必须确保

  • 您的“触发器url”存在
  • 它对帖子的回复是“ok”
  • 它很快。。。我不知道这到底有多快,但我认为响应时间应该小于1秒

在这样的环境中,我上面的代码可以正常工作。

您必须确保在安装过程中

  • 您的“触发器url”存在
  • 它对帖子的回复是“ok”
  • 它很快。。。我不知道这到底有多快,但我认为响应时间应该小于1秒

在这样的环境中,我上面的代码可以工作。

您的通知端点将执行两个操作:

  • 它将响应测试请求响应(当您注册时,它将检查您的URL是否存在)。您将收到带有空body对象的调用。如果它不是have
    userid
    ,则它不是一个数据通知,因此您必须响应状态为200且主体为空
  • 成功注册后,您将收到数据警报。这一次,您可以通过业务逻辑进行处理
    您的通知端点将执行两个操作:

  • 它将响应测试请求响应(当您注册时,它将检查您的URL是否存在)。您将收到带有空body对象的调用。如果它不是have
    userid
    ,则它不是一个数据通知,因此您必须响应状态为200且主体为空
  • 成功注册后,您将收到数据警报。这一次,您可以通过业务逻辑进行处理
    回调URL是否需要解析?如果是这样的话,它可能需要一个可以通过DNS解析的有效主机名。我应该补充一点,所有其他API调用都是成功的,@tadman,我还使用一个“真实”URL进行了测试,可以解析。(我可以从中获取并用我的浏览器推到它。)仍然是相同的错误…@jlxq0您找到这个问题的答案了吗?我被它绊倒了回调URL需要解析吗?如果是这样的话,它可能需要一个可以通过DNS解析的有效主机名。我应该补充一点,所有其他API调用都是成功的,@tadman,我还使用一个“真实”URL进行了测试,可以解析。(我可以从中获取并用我的浏览器推到它。)仍然是相同的错误…@jlxq0您找到这个问题的答案了吗?我被它绊住了
    irb(main):051:0>   JSON.parse(response.body)
    => {"status"=>293}