SOLVED

Meeting created via Graph API is not applying global policy properly

%3CLINGO-SUB%20id%3D%22lingo-sub-1457110%22%20slang%3D%22en-US%22%3EMeeting%20created%20via%20Graph%20API%20is%20not%20applying%20global%20policy%20properly%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1457110%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20All%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20We%20needed%20to%20make%20sure%20that%20all%20external%20users%20when%20joining%20a%20meeting%20via%20meeting%20URL%20should%20be%20given%20the%20role%20of%20an%20attendee.%20I%20have%20run%20the%20following%20PowerShell%20command%20to%20set%20the%20policy%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-powershell%22%3E%3CCODE%3ESet-CsTeamsMeetingPolicy%20-DesignatedPresenterRoleMode%20EveryoneInCompanyUserOverride%20-Identity%20Global%0A%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EAs%20a%20result%20at%20present%20if%20we%20are%20creating%20an%20MS%20Teams%20meeting%20via%20UI%20all%20external%20users%20are%20getting%20added%20as%20an%20%22attendee%22%2C%20which%20is%20the%20expected%20behavior.%3C%2FP%3E%3CP%3EBut%20if%20we%20are%20creating%20the%20meeting%20via%20Graph%20API%20using%20a%20code%20similar%20to%20-%26nbsp%3B%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-html%22%3E%3CCODE%3EPOST%20https%3A%2F%2Fgraph.microsoft.com%2Fv1.0%2Fme%2FonlineMeetings%0AContent-Type%3A%20application%2Fjson%0A%0A%7B%0A%20%20%22startDateTime%22%3A%222019-07-12T14%3A30%3A34.2444915-07%3A00%22%2C%0A%20%20%22endDateTime%22%3A%222019-07-12T15%3A00%3A34.2464912-07%3A00%22%2C%0A%20%20%22subject%22%3A%22User%20Token%20Meeting%22%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3BAnd%20then%20when%20the%20%3CSTRONG%3Eexternal%20user%20is%20joining%20in%20via%20the%20meeting%20URL%20generated%20via%20the%20Graph%20API%3C%2FSTRONG%3E%20call%20he%20is%20by%20default%20given%20%3CSTRONG%3Ethe%20%22presenter%22%20role%20and%20not%20the%20%22attendee%20role%20as%20expected%3C%2FSTRONG%3E.%20Can%20you%20please%20help.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThanks%3C%2FP%3E%3CP%3ETiklu%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1457110%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EDeveloper%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EGraph%20API%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EGuest%20Access%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EMeetings%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3EMicrosoft%20Teams%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1458714%22%20slang%3D%22en-US%22%3ERe%3A%20Meeting%20created%20via%20Graph%20API%20is%20not%20applying%20global%20policy%20properly%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1458714%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20All%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20Just%20to%20elaborate%20further.%20If%20we%20are%20creating%20the%20meeting%20via%20UI%2C%20all%20external%20users%20are%20getting%20added%20as%20an%20attendee.%20But%20if%20we%20are%20creating%20the%20meeting%20via%20Graph%20API%20the%20users%20are%20getting%20added%20as%20a%20normal%20%22presenter%22%20and%20not%20as%20an%20attendee.%20We%20have%20also%20tried%20using%20the%20Microsoft%20graph%20event%20API.%20And%20in%20that%20case%2C%20also%20the%20behavior%20is%20the%20same.%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EThanks%3C%2FP%3E%3CP%3ETiklu%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1458895%22%20slang%3D%22en-US%22%3ERe%3A%20Meeting%20created%20via%20Graph%20API%20is%20not%20applying%20global%20policy%20properly%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1458895%22%20slang%3D%22en-US%22%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F73519%22%20target%3D%22_blank%22%3E%40tiklu%20ganguly%3C%2FA%3E%2C%20Usually%20policies%20takes%2024%20hours%20to%20reflect.%20can%20you%20try%20it%20once%20after%2024%20hours%20from%20you%20actually%20set%20up%20policies.%20Let%20me%20know%20weather%20it%20worked%20for%20you.%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1459087%22%20slang%3D%22en-US%22%3ERe%3A%20Meeting%20created%20via%20Graph%20API%20is%20not%20applying%20global%20policy%20properly%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1459087%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20All%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3BWe%20were%20able%20to%20solve%20this%20by%20passing%20the%20id%20of%20the%20organizer%20like%20the%20one%20sample%20given%20below%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-json%22%3E%3CCODE%3E%7B%0A%20%20%22startDateTime%22%3A%222019-09-09T14%3A33%3A30.8546353-07%3A00%22%2C%0A%20%20%22endDateTime%22%3A%222019-09-09T15%3A03%3A30.8566356-07%3A00%22%2C%0A%20%20%22subject%22%3A%22Application%20Token%20Meeting%22%2C%0A%20%20%22participants%22%3A%20%7B%0A%20%20%20%20%22organizer%22%3A%20%7B%0A%20%20%20%20%20%20%22identity%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22user%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%22id%22%3A%20%22550fae72-d251-43ec-868c-373732c2704f%22%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3Eto%20get%20the%20id%20of%20the%20user%20you%20would%20need%20to%20query%20%22%2Fusers%22%20endpoint%3C%2FP%3E%3CP%3EThanks%3C%2FP%3E%3CP%3ETiklu%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1508818%22%20slang%3D%22en-US%22%3ERe%3A%20Meeting%20created%20via%20Graph%20API%20is%20not%20applying%20global%20policy%20properly%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1508818%22%20slang%3D%22en-US%22%3E%3CP%3Ewhen%20we%20hit%20on%20postman%20so%20we%20getting%20some%20error%20like%20this%26nbsp%3B%3C%2FP%3E%3CP%3E%22message%20error%20authenticating%20with%20resource%22%26nbsp%3B%3C%2FP%3E%3CP%3EPlease%20help%20!%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1520685%22%20slang%3D%22en-US%22%3ERe%3A%20Meeting%20created%20via%20Graph%20API%20is%20not%20applying%20global%20policy%20properly%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1520685%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F73519%22%20target%3D%22_blank%22%3E%40tiklu%20ganguly%3C%2FA%3Estill%20created%20with%20everyone%20can%20present%20for%20us%3C%2FP%3E%3C%2FLINGO-BODY%3E
Occasional Contributor

Hi All,

      We needed to make sure that all external users when joining a meeting via meeting URL should be given the role of an attendee. I have run the following PowerShell command to set the policy

 

Set-CsTeamsMeetingPolicy -DesignatedPresenterRoleMode EveryoneInCompanyUserOverride -Identity Global

As a result at present if we are creating an MS Teams meeting via UI all external users are getting added as an "attendee", which is the expected behavior.

But if we are creating the meeting via Graph API using a code similar to -  

POST https://graph.microsoft.com/v1.0/me/onlineMeetings
Content-Type: application/json

{
  "startDateTime":"2019-07-12T14:30:34.2444915-07:00",
  "endDateTime":"2019-07-12T15:00:34.2464912-07:00",
  "subject":"User Token Meeting"
}

 And then when the external user is joining in via the meeting URL generated via the Graph API call he is by default given the "presenter" role and not the "attendee role as expected. Can you please help.

 

Thanks

Tiklu

 

5 Replies

Hi All,

 

      Just to elaborate further. If we are creating the meeting via UI, all external users are getting added as an attendee. But if we are creating the meeting via Graph API the users are getting added as a normal "presenter" and not as an attendee. We have also tried using the Microsoft graph event API. And in that case, also the behavior is the same. 

 

Thanks

Tiklu

@tiklu ganguly, Usually policies takes 24 hours to reflect. can you try it once after 24 hours from you actually set up policies. Let me know weather it worked for you.
Best Response confirmed by tiklu ganguly (Occasional Contributor)
Solution

Hi All,

       We were able to solve this by passing the id of the organizer like the one sample given below

{
  "startDateTime":"2019-09-09T14:33:30.8546353-07:00",
  "endDateTime":"2019-09-09T15:03:30.8566356-07:00",
  "subject":"Application Token Meeting",
  "participants": {
    "organizer": {
      "identity": {
        "user": {
          "id": "550fae72-d251-43ec-868c-373732c2704f"
        }
      }
    }
  }
}

to get the id of the user you would need to query "/users" endpoint

Thanks

Tiklu

when we hit on postman so we getting some error like this 

"message error authenticating with resource" 

Please help !

 

@tiklu gangulystill created with everyone can present for us