无法在facebook上添加/发布用于实时更新的子选项

无法在facebook上添加/发布用于实时更新的子选项,facebook,facebook-graph-api,ruby-on-rails-4,Facebook,Facebook Graph Api,Ruby On Rails 4,我正在尝试通过Graph API Explorer添加/发布的订阅。这是我请求的帖子url {app\u id}/subscriptions/?object=用户&字段=朋友&验证\u令牌=这是验证字符串&访问\u令牌=我的\u app\u令牌&回调\u url= 但我得到了错误响应: { 错误:{ 消息:2200回调验证失败:, 类型:OAutheException, 代码:2200 } } 我还在路由中定义了两次相同的回调URL来处理GET和POST请求。上面提到的API请求正在命中回调ur

我正在尝试通过Graph API Explorer添加/发布的订阅。这是我请求的帖子url

{app\u id}/subscriptions/?object=用户&字段=朋友&验证\u令牌=这是验证字符串&访问\u令牌=我的\u app\u令牌&回调\u url=

但我得到了错误响应:

{ 错误:{ 消息:2200回调验证失败:, 类型:OAutheException, 代码:2200 } }

我还在路由中定义了两次相同的回调URL来处理GET和POST请求。上面提到的API请求正在命中回调url,但服务器日志中也出现了错误

2015-02-12 19:24:12+0530开始获取/auth/facebook/callback/?hub.mode=subscribe&hub.challenge=246450618&hub.verify\u token=thisisavirifystring for 66.220.158.118 一、 [2015-02-12T19:24:12.530395 18960]信息-omniauth:facebook回调阶段启动。 E、 [2015-02-12T19:24:12.530916 18960]错误-omniauth:facebook身份验证失败!无授权代码:OmniAuth::Strategies::Facebook::NoAuthorizationCodeError,必须通过URL或fbsr\u XXX签名请求cookie传递代码

OmniAuth::Strategies::Facebook::NoAuthorizationCodeError必须通过URL或fbsr_XXX签名请求cookie传递代码: omniauth facebook 2.0.0 lib/omniauth/strategies/facebook.rb:151:in with_authorization_code!' omniauth facebook 2.0.0 lib/omniauth/strategies/facebook.rb:71:incallback_phase' omniauth 1.2.2 lib/omniauth/strategy.rb:227:in callback\u call' omniauth 1.2.2 lib/omniauth/strategy.rb:184:incall!” omniauth 1.2.2 lib/omniauth/strategy.rb:164:in call' omniauth 1.2.2 lib/omniauth/strategy.rb:186:incall!” omniauth 1.2.2 lib/omniauth/strategy.rb:164:in call' omniauth 1.2.2 lib/omniauth/builder.rb:59:incall' 机架1.5.2 lib/rack/etag.rb:23:in call' 机架1.5.2 lib/rack/conditionalget.rb:25:incall' 机架1.5.2 lib/rack/head.rb:11:in call' remotipart 1.2.1 lib/remotipart/middleware.rb:27:incall' actionpack 4.1.8 lib/action_dispatch/middleware/params_parser.rb:27:in call' actionpack 4.1.8 lib/action\u dispatch/middleware/flash.rb:254:incall' 机架1.5.2 lib/rack/session/abstract/id.rb:225:在上下文中' 机架1.5.2 lib/rack/session/abstract/id.rb:220:incall' actionpack 4.1.8 lib/action\u dispatch/middleware/cookies.rb:560:in call' actionpack 4.1.8 lib/action\u dispatch/middleware/callbacks.rb:29:inblock-in-call' activesupport 4.1.8 lib/active\u support/callbacks.rb:82:in run\u callbacks' actionpack 4.1.8 lib/action\u dispatch/middleware/callbacks.rb:27:incall' actionpack 4.1.8 lib/action\u dispatch/middleware/reloader.rb:73:in call' actionpack 4.1.8 lib/action\u dispatch/middleware/remote\u ip.rb:76:incall' actionpack 4.1.8 lib/action\u dispatch/middleware/debug\u exceptions.rb:17:in call' actionpack 4.1.8 lib/action\u dispatch/middleware/show\u exceptions.rb:30:incall' railties 4.1.8 lib/rails/rack/logger.rb:38:in call_app' railties 4.1.8 lib/rails/rack/logger.rb:20:inblock-in调用' activesupport 4.1.8 lib/active\u support/taged\u logging.rb:68:in block in taged' activesupport 4.1.8 lib/active\u support/taged\u logging.rb:26:intaged' activesupport 4.1.8 lib/active\u support/taged\u logging.rb:68:in taged' railties 4.1.8 lib/rails/rack/logger.rb:20:incall' actionpack 4.1.8 lib/action\u dispatch/middleware/request\u id.rb:21:in call' 机架1.5.2 lib/rack/methodoverride.rb:21:incall' 机架1.5.2 lib/rack/runtime.rb:17:in call' activesupport 4.1.8 lib/active\u support/cache/strategy/local\u cache\u middleware.rb:26:incall' 机架1.5.2 lib/rack/lock.rb:17:in call' actionpack 4.1.8 lib/action\u dispatch/middleware/static.rb:84:incall' 机架1.5.2 lib/rack/sendfile.rb:112:in call' railties 4.1.8 lib/rails/engine.rb:514:incall' railties 4.1.8 lib/rails/application.rb:144:in call' 机架1.5.2 lib/rack/lock.rb:17:incall' 机架1.5.2 lib/rack/content_length.rb:14:in call' 机架1.5.2 lib/rack/handler/webrick.rb:60:in-service' /home/sshinde/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/webrick/httpserver.rb:138:in-service' /home/sshinde/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/webrick/httpserver.rb:94:inrun' /home/sshinde/.rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/webrick/server.rb:295:in'block in start_thread'

我假设验证令牌有问题,但我不确定如何获取该令牌


请评论

您的回调url似乎没有实现,您需要实际创建它。您正在使用来自OmniAuth的登录url,这显然是在请求代码或签名请求,而这与您的订阅回调无关

理想情况下,这些url应该是不同的,我看不出用订阅回调url重载登录url端点有什么直接的好处

在你的登录url代码中,你有吗

验证hub.Verify_令牌是否与创建订阅时提供的令牌匹配? 是否对仅包含hub.challenge值的GET请求呈现响应?