PubSubHubbub和Ruby on Rails:订阅验证

时间:2011-06-03 09:04:44

标签: heroku pubsubhubbub

我正在尝试使用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主机和异步验证方法。

1 个答案:

答案 0 :(得分:1)

您应该检查的第一件事是HTTP状态代码和订阅请求的响应BODY。我希望代码为422表示订阅失败,但正文将帮助我们确切知道发生了什么。

另外,您是否在日志中看到了验证请求?

heroku的一个常见问题是,如果你使用hub.verify = sync,你将需要2个dynos,因为在这种情况下你必须同时发出请求......