Invalid Signature with Sample Web App

Yes. Sure.

Below is the code:

require "base64"
require "openssl"

module Zoom
  class SignatureGenerator
    def initialize(meeting_number)
      @meeting_number = meeting_number
      @api_key = "< api key >"
      @api_secret = "< api secret >"
      @role = "0"   # for attendee
    end

    def encode64s(value)
      Base64.strict_encode64(value)
    end

    def signature
      ts = (Time.now.to_f * 1000).round(0) - 30000
      msg = encode64s(@api_key + @meeting_number + ts.to_s + @role)

      hash = encode64s(OpenSSL::HMAC.digest("sha256", @api_secret, msg))
      encode64s("#{@api_key}.#{@meeting_number}.#{ts.to_s}.#{@role}.#{hash}")
    end
  end
end
3 Likes