Search code examples
microsoft-graph-apimicrosoft-graph-teamsmicrosoft-graph-calendar

How to allow Microsoft Team attendees to bypass lobby programatically (Microsoft Graph)


I've created an event on a calendar using Calendar API which in turn in the response, it will give me the link to a Microsoft Team meeting link. This is an example data that I've send when creating the event. Also, I'm calling this API as an App not as a user, so basically all 3 attendees are not part of the AD users.

{
        "attendees": [
            {
                "type": "required",
                "emailAddress": {
                    "address": "attendee1@domain.com",
                    "name": "Attendee 1"
                }
            },
            {
                "type": "required",
                "emailAddress": {
                    "address": "attendee2@domain.com",
                    "name": "Attendee 2"
                }
            },
            {
                "type": "required",
                "emailAddress": {
                    "address": "attendee3@domain.com",
                    "name": "Attendee 3"
                }
            }
        ],
        "end": {
            "dateTime": "2020-11-13T17:32:39.636Z",
            "timeZone": "UTC"
        },
        "start": {
            "dateTime": "2020-11-11T16:32:39.636Z",
            "timeZone": "UTC"
        },
        "subject": "My online meeting",
        "isOnlineMeeting": true,
        "body": {
            "content": "Does this time work for you?",
            "contentType": "HTML"
        },
        "onlineMeetingProvider": "teamsForBusiness",
        "allowNewTimeProposals": false
    }

In the response, I receive something like this:

...
"onlineMeeting": {
    "joinUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzRmMDIwMWEtNGYyZS00MmNkLTk3NTAtOGxxxxkOGQ4ZDUx%40thread.v2/0?context=%7b%22Tid%22%3a%22b82fec80-bee7-401e-xxxx-8a312e0a62d1%22%2c%22Oid%22%3a%22112d58ba-xxxx-47ce-a1a8-3d0abebead18%22%7d"
  }
...

My problem right now is none of the attendees can start the meeting. I wonder if there's a way programatically either when I'm creating the event or updating the online meeting, to enable the attendees to bypass the lobby and start the meeting.


Solution

  • According to your parameter, I think you use Calendar event api to create an online meeting.

    I also tried this and found that the attendees needs permission to enter the meeting room while the creater can enter directly. I googled and found no graph api could modify this configuration. The only way to make every attendee join the meeting without permission is changing the meeting option as 'everyone can bypass the lobby'

    enter image description here

    By the way, admin role account can login the Microsoft teams admin center and automatically allow people in your organization bypass the lobby. This document tells the detail.

    Actually, I used Fiddler to catch the changing option request and got a url like https://teams.microsoft.com/api/mt/amer/beta/meetings/v1/options/.... and an access token. I can use them to change the option successfully by sending a http post request. All seems the answer will appear but unfortunately after analizing the access token I found the api needs a permission https://api.spaces.skype.com which is not supported by Azure ad.