OpenTok Ruby 在 Rails

OpenTok Ruby On Rails

我真的很希望有人能帮助我。我正在尝试将 OpenTok 集成到我已经构建的应用程序的 Ruby On Rails 应用程序中。我已使用以下文章尝试集成并使其适应我的特定站点。我已按照此处的分步说明进行操作:https://railsfornovice.wordpress.com/2013/01/01/video-chatting-in-ruby-on-rails/

我需要帮助,因为我目前收到错误消息:

uninitialized constant OpenTok::OpenTokSDK

它似乎没有使用 Tokbox 进行身份验证。

这是我的代码:

  def index
    @rooms = Room.where(:public => true).order("created_at DESC")
    @new_room = Room.new
  end

  def create
    session = @opentok.create_session request.remote_addr
    params[:room][:sessionId] = session.session_id

    @new_room = Room.new(params[:room])

    respond_to do |format|
      if @new_room.save
        format.html { redirect_to("/party/"+@new_room.id.to_s) }
      else
        format.html { render :controller => 'rooms',
          :action => "index" }
      end
    end
  end

  def party
    @room = Room.find(params[:id])

    @tok_token = @opentok.generate_token :session_id =>@room.sessionId     
  end

非常感谢任何帮助。

谢谢, 安德鲁

您关注的博客 post 有点过时了。您可能下载了最新版本的 'opentok' gem,因此您需要更新代码以使用最新的 API。幸运的是,没有太多的变化,这里是更新的方法:

def create
  session = @opentok.create_session
  params[:room][:sessionId] = session.session_id

  @new_room = Room.new(params[:room])

  respond_to do |format|
    if @new_room.save
      format.html { redirect_to(“/party/”+@new_room.id.to_s) }
    else
      format.html { render :controller => ‘rooms’, :action => “index” }
    end
  end
end

def party
  @room = Room.find(params[:id])

  @tok_token = @opentok.generate_token @room.sessionId 
end

def config_opentok
  if @opentok.nil?
    @opentok = OpenTok::OpenTok.new YOUR_API_KEY, YOUR_SECRET_TOKEN
  end
end

如需进一步参考,请查看 OpenTok Ruby SDK README

对于 { @new_room = Room.new(params[:room]) } 你应该将其更改为 @new_room=Room.new(room_params) 并创建一个像这样的私有方法:

def room_params
    params.require(:room).permit(:name, :public, :sessionId)
end