0

我正在尝试使用 PubSubHubbub 和 Ruby on Rails实现Superfeedr 订阅。问题是,订阅从未得到确认,即使我的回调打印出它成功接收的 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 托管和异步验证方法。

4

1 回答 1

1

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

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

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

于 2011-06-03T09:24:06.277 回答