azuremicrosoft-graph-apimicrosoft-graph-teams

Create Teams OnlineMeeting via Graph API using delagated permission now get "No application access policy"


I was able to created (Teams) OnlineMeetings via graph API with my own app registration and delegated permissions using device_code flow and the /me endpoint. I left the code untouched but now, I do get a "No application access policy found for this app" [403].

As far as I know, when not using application permission - I don't need a further tenant admin setup. The code works in the same way when creating Calendar events, but fails now for OnlineMeetings.

Are there any significant changes for delegated permissions concerning the /v1.0/me/onlineMeetings endpoint? Or did my tenant admin modified something?

Snippets:

String deviceCodeResp = sendPostRequest(AUTH_ENDPOINT + "/devicecode",
        "client_id=" + CLIENT_ID +  "&scope=https://graph.microsoft.com/User.Read+https://graph.microsoft.com/OnlineMeetings.ReadWrite",
        "application/x-www-form-urlencoded"
);
    
// Extract device code and message
String deviceCode = extractJsonValue(deviceCodeResp, "device_code");

// user enters usercoode on microsoft devicelogin page

String tokenResponse = sendPostRequest(AUTH_ENDPOINT + "/token",
     "grant_type=device_code" +
     "&device_code=" + deviceCode +
     "&client_id=" + CLIENT_ID,
     "application/x-www-form-urlencoded"
);
String token = extractJsonValue(tokenResponse, "access_token");

// create the meeting with the access_token
String meetingResponse = sendPostRequest(GRAPH_ENDPOINT + "/me/onlineMeetings",
    meetingJson,
    "application/json",
    token
);

Solution

  • Note: If you are making using of delegated API permissions to create onlinemeetings using /me then there is no need to configure application policy.

    I tried in my environment used device code to generate access token by using below parameters:

    API permissions:

    enter image description here

    POST https://login.microsoftonline.com/TenantID/oauth2/v2.0/devicecode
    
    client_id: ClientID
    scope: https://graph.microsoft.com/.default
    

    enter image description here

    enter image description here

    Generated access token:

    POST https://login.microsoftonline.com/TenantID/oauth2/v2.0/token
    
    grant_type: urn:ietf:params:oauth:grant-type:device_code
    client_id: ClientID
    device_code: xxx
    

    enter image description here

    Using the above access token, I am able to create onlinemeetings using /me endpoint:

    POST https://graph.microsoft.com/v1.0/me/onlineMeetings
    
    {
      "startDateTime":"2025-07-12T14:30:34.2444915-07:00",
      "endDateTime":"2025-07-12T15:00:34.2464912-07:00",
      "subject":"User Token Meeting"
    }
    

    enter image description here

    If still the issue persists, try to create a new Microsoft Entra ID application and pass those credentials and check.