我正在尝试使用PubSubHubbub和Ruby on Rails实现Superfeedr subscriptions。问题是,订阅永远不会被确认,即使我的回调打印出成功接收的hub.challenge字符串。
def push
feed = Feed.find(params[:id])
if feed.present?
if params['hub.mode'].present? and params['hub.verify_token'] == feed.secret
feed.update_attribute(:is_active, (params['hub.mode'] == 'subscribe'))
render text: params['hub.challenge']
return
elsif params['hub.secret'] == feed.secret
parse(feed, request.raw_post)
end
end
render nothing: true
end
它设置了feed.is_active = true,但Superfeedr Analytics没有显示订阅的迹象。
我正在使用1个dyno Heroku主机和异步验证方法。
答案 0 :(得分:1)
您应该检查的第一件事是HTTP状态代码和订阅请求的响应BODY。我希望代码为422表示订阅失败,但正文将帮助我们确切知道发生了什么。
另外,您是否在日志中看到了验证请求?
heroku的一个常见问题是,如果你使用hub.verify = sync,你将需要2个dynos,因为在这种情况下你必须同时发出请求......