Ошибка Forbidden 403 при создании OnlineMeeting с помощью Microsoft Graph v1.0 SDK - PullRequest
1 голос
/ 10 января 2020

Я пытаюсь создать онлайн-собрание, чтобы получить присоединение от Microsoft Team Meeting с использованием Graph SDK, но у меня появляется ошибка Forbidden (403) даже после того, как я предоставил приложение (с согласием администратора) и разрешение на делегирование в OnlineMeetings.Read. Все »,« OnlineMeetings.Read »,« OnlineMeetings.ReadWrite.All »,« OnlineMeetings.ReadWrite ».

Пожалуйста, ознакомьтесь с моим кодом ниже и дайте мне знать, что я делаю неправильно, или мне нужно предоставить какие-либо другие разрешения.

Ниже мой код:

 string[] graphScopes = { "OnlineMeetings.Read.All", "OnlineMeetings.Read", 
    "OnlineMeetings.ReadWrite.All", "OnlineMeetings.ReadWrite" };

        IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
            .Create("55e5f6cf-****-****-****-4f23d6e****")
            .WithTenantId("****b9d4-4dbf-****-888f-21d*563b****")
            .WithClientSecret("********************************")
            .Build();


        ClientCredentialProvider authenticationProvider = new ClientCredentialProvider(confidentialClientApplication);

        GraphServiceClient graphClient = new GraphServiceClient(authenticationProvider);

        var onlineMeeting = new OnlineMeeting
        {
            StartDateTime = DateTimeOffset.Parse("2020-01-15T21:30:34.2444915+05:30"),
            EndDateTime = DateTimeOffset.Parse("2020-01-15T22:00:34.2464912+05:30"),
            Subject = "User Token Meeting"
        };

        var meeting = graphClient.Me.OnlineMeetings
              .Request()
              .AddAsync(onlineMeeting).Result;

1 Ответ

0 голосов
/ 13 января 2020

Создание онлайн-встречи требуется только OnlineMeetings.ReadWrite Делегированное Разрешение.

Таким образом, требуется авторизация пользователя + приложения, а не авторизация только для приложения.

В этом случае вы используете Поставщик учетных данных клиента , что означает авторизацию только для приложения.

Вы должны использовать Поставщик кода авторизации для получения токена доступа, который будет включать OnlineMeetings.ReadWrite Делегированное Разрешение.

...