Description
If I use the (POST /users/{zoom_account_email}/meetings) endpoint to attempt to create a new instant meeting for a user, sometimes it instead returns the user’s Personal Meeting Room details rather than creating a new room, depending on which user is passed.
Why is the Personal Meeting Room returned for certain users?
Which App Type (OAuth / Chatbot / JWT / Webhook)?
JWT
Which Endpoint/s?
POST /users/{zoom_account_email}/meetings
https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate
How To Reproduce (If applicable)
- Consider the following Python code to create an instant meeting using the Zoom API:
host_zoom_user_id = ... # a Zoom email meeting_password = ... # something random token = ... # JWT token zoom_request = Request( # https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate url='https://api.zoom.us/v2/users/%s/meetings' % urllib.parse.quote(host_zoom_user_id), method='POST', data=json.dumps(dict( topic='', type=1, # 1 = instant meeting start_time=None, duration=None, timezone=None, password=meeting_password, agenda='', recurrence=None, settings=dict( host_video=True, participant_video=True, cn_meeting=False, in_meeting=False, join_before_host=False, # ignored for instant meetings mute_upon_entry=True, watermark=False, use_pmi=False, # generate a new meeting ID approval_type=0, # 0 = automatically approve registration_type=1, # ignored for instant meetings audio='voip', # only allow join with computer audio auto_recording='none', enforce_login=False, enforce_login_domains='', # ignored for enforce_login=False alternative_hosts='', global_dial_in_countries=[], registrants_email_notification=False, ), )).encode('utf8'), headers={ 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json', 'Accept': 'application/json', }, )
- Use the code with the email “david.foster+zoomdemo@techsmart.codes”. Get back an API response describing a new instant meeting, as expected:
{ 'uuid': 'NVOHbojwR52RuGCtg68ufA==', 'id': ***********, // 11 digits 'host_id': 'rkf8kTCBRDSJhINS4UxrvA', 'topic': 'Zoom Meeting', 'type': 1, 'status': 'waiting', 'timezone': 'America/Los_Angeles', 'created_at': '2020-05-04T21:06:00Z', 'start_url': ..., 'join_url': ..., 'password': ..., 'h323_password': ..., 'pstn_password': ..., 'encrypted_password': ..., 'settings': { 'host_video': True, 'participant_video': True, 'cn_meeting': False, 'in_meeting': False, 'join_before_host': False, 'mute_upon_entry': True, 'watermark': False, 'use_pmi': False, 'approval_type': 2, 'audio': 'voip', 'auto_recording': 'none', 'enforce_login': False, 'enforce_login_domains': '', 'alternative_hosts': '', 'close_registration': False, 'registrants_confirmation_email': True, 'waiting_room': False, 'contact_name': 'David Foster (Demo)', 'contact_email': 'david.foster+zoomdemo@techsmart.codes', 'registrants_email_notification': False, 'meeting_authentication': False } }
- Use the code with the email “andrew.lo@techsmart.codes”. Get back an API response describing a Personal Meeting Room, which is surprising:
{ 'uuid': ..., 'id': ##########, // 10 digits 'host_id': ..., 'topic': "Andrew Lo's Personal Meeting Room", 'type': 1, 'status': 'waiting', 'timezone': 'America/Los_Angeles', 'agenda': '', 'created_at': '2020-05-04T21:03:36Z', 'start_url': ..., 'join_url': ..., 'settings': { 'host_video': True, 'participant_video': True, 'cn_meeting': False, 'in_meeting': False, 'join_before_host': True, 'mute_upon_entry': False, 'watermark': False, 'use_pmi': False, 'approval_type': 2, 'audio': 'both', 'enforce_login': False, 'close_registration': False, 'registrants_confirmation_email': False, 'waiting_room': False, 'registrants_email_notification': True, 'meeting_authentication': False } }
*This post has been edited to remove any meeting / webinar IDs