首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Withings :回调URL要么未知要么无效

Withings :回调URL要么未知要么无效
EN

Stack Overflow用户
提问于 2015-09-21 22:02:43
回答 1查看 679关注 0票数 2

我正在尝试在withings中设置一个通知(使用withings simplificator)。我总是会得到这个错误,不管我输入了什么URL,或者我是否对它进行了编码:

代码语言:javascript
复制
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>'

有没有人遇到过这种情况,并有解决办法?

更新1:

因此,我尝试不使用withings简化器gem:

代码语言:javascript
复制
API_KEY       = '123'
API_SECRET    = '456'
USER_ID       = '789'
USER_KEY      = 'abc'
USER_SECRET   = 'def'
CONFIGURATION = {               site: 'https://oauth.withings.com',
                  request_token_path: '/account/request_token',
                   access_token_path: '/account/access_token',
                      authorize_path: '/account/authorize',
                         http_method: :get,
                              scheme: :query_string
                }

@consumer = OAuth::Consumer.new API_KEY, API_SECRET, CONFIGURATION

@access_token = OAuth::AccessToken.new @consumer, USER_KEY, USER_SECRET

url = ERB::Util.url_encode("www.foo.bar/trigger")
comment = ERB::Util.url_encode("Trigger")
response = @access_token.get("https://wbsapi.withings.net/notify?action=subscribe&userid=#{USER_ID}&callbackurl=#{url}&comment=#{comment}")
JSON.parse(response.body)

同样的错误:

代码语言:javascript
复制
irb(main):051:0>   JSON.parse(response.body)
=> {"status"=>293}

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-11-30 12:26:04

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

  1. 它将响应测试请求响应(注册时它将检查您的URL是否存在)。您将收到带有空body对象的呼叫。如果它没有userid,它不是一个数据通知,所以您必须响应状态为200与空体;
  2. 成功注册后,您将收到数据警报。这一次,您可以通过业务逻辑来处理。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32705208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档