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