I disabled the password so it is not a problem now, but i am getting another error ‘Meeting not started’ even though the meeting has been started.
HI Tommy/Team, I have cloned the github sample app and deployed it on glitch. I also created my signature with heroku. Can you please guide me on how to modify the index.js code to add a http post so that zoom.mtg can get my signature? Hope that my explanation is clear. Thanks!
Hey @gabriele.limonta,
Nice job!
There are a few ways you can make a post request in JavaScript.
Once you choose a method, just put in your heroku url and request body
Let me know if that helps!
Thanks,
Tommy
Hi Tommy,
I have added one of the methods suggested and I can generate the signature but it always return me
-
{method: “join”, status: false, result: null, errorMessage: undefined, errorCode: 1}
-
method: “join”
-
status: false
-
result: null
-
errorMessage: undefined
-
errorCode: 1
-
proto: Object
This is the webapp on glitch https://zoom-sample-app-web-1.glitch.me/CDN/
I would be grateful if you could have a look.
Thanks!
Hey @gabriele.limonta,
Looks like you are trying to start your own meeting.
Are you passing in 1
for the meetConfig.role
?
Thanks,
Tommy
No, I pass 0. I tried by pass 0,1 and 5 but it always returns me the same error. Is it possible to send you the code in DM?
Hey @gabriele.limonta,
Double check you are passing in the signature correctly. The response from your signature endpoint is being converted to text and not JSON, and you need to pass in the actual signature, not just the object returned from the endpoint.
response.signature
Thanks,
Tommy
Many thanks Tommy. It works well now
Is there any timeline update on the fully responsive web SDK?
Happy to hear you got it working!
No timeline set in stone, but either later this year, or next year.
Thanks,
Tommy
Hey @tommy,
Will you help me with generating the signature in Ruby.
So far I have tried below code:
ts = (Time.now.to_f * 1000).round(0) - 30000
msg = Base64.strict_encode64(@api_key + @meeting_number + ts.to_s + @role)
digest = OpenSSL::Digest::SHA256.new
hmac = OpenSSL::HMAC.new(@api_secret, digest)
hmac << msg
hash = Base64.encode64(hmac.digest)
signature = Base64.urlsafe_encode64("#{@api_key}.#{@meeting_number}.#{ts.to_s}.#{@role}.#{hash}")
Error: /**/localJsonpCallback({“status”:false,“errorCode”:200,“errorMessage”:“Invalid signature.”,“result”:null});
Hi @deepak2,
Can you make sure that your systems settings is up to date? Please see my comment on this post -
Join meeting timeout or signature expired.
I was able to solve this in Ruby.
Hi @deepak2,
We’re glad that you were able to resolve the issue. We’ll update our Generate Signature docs to include a Ruby example - https://marketplace.zoom.us/docs/sdk/native-sdks/web/essential/signature
Let us know if you need anything else.
Thanks
I didn’t see any ruby examples here:
Do you have an example somewhere?
Hey @deepak2,
Can you share the Ruby code function you developed? We would be happy to add it to the docs.
CC @anthony
Thanks,
Tommy
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
hello deepak2
I also tried to generate signature in ruby on rails like this
def signature
logger.info params
timestamp = (Time.now.to_f * 1000).to_i - 30000
logger.info timestamp
message = Base64.strict_encode64("#{params[:apiKey]}#{params[:meetingNumber]}#{timestamp}#{params[:role]}")
hash = Base64.strict_encode64(OpenSSL::HMAC.digest(‘sha256’, params[:apiSecrete], message))
signature = Base64.strict_encode64("#{params[:apiKey]}.#{params[:meetingNumber]}.#{timestamp}.#{params[:role]}.#{hash}")
respond_to do |format|
format.json { render json: {signature: signature} }
end
end
I think it’s same to your code
But it works with meetings created only one account.
If i use MeetingID created another account this Error shows
“Your connection has timed out and you cannot join the meeting. Verify your network connectivity and try again.”
please help me!