Как я могу получить ответ Json для создания чата из Microsoft Graph Api

Я пытаюсь получить ответ на создание функции чата с помощью Microsoft Graph Api в моем приложении С# и показать его в текстовом поле, чтобы моя система С# могла отправлять сообщения с идентификатором чата. Мне удалось получить ответ getallchat, выполнив шаги, описанные в разделе Как я могу проанализировать ответ JSON из чата списка API Microsoft Graph в текстовое поле , но я не смог использовать следующие шаги, чтобы получить ответ от создать чат есть идеи?Документация по созданию чата https://learn.microsoft.com/en-us/graph/api/chat-post?view=graph-rest-1.0&tabs=http

Кодирование Часть создания чата

                 private async void button5_Click(object sender, EventArgs e)
    {
        var scopes = new[] { "Directory.Read.All", "Directory.ReadWrite.All", "User.Read", "User.Read.All", "User.ReadBasic.All", "User.ReadWrite", "Chat.Create", "Chat.ReadWrite" };
        {





            // Multi-tenant apps can use "common",
            // single-tenant apps must use the tenant ID from the Azure portal
            var tenantId = "5xxxxxxx3-3xxx6a-xxx1-9xxxc-exxxxxxxxx0";



            // Value from app registration
            var clientId = "3xxxx04-5c92-42xxx-8500-6xxxxxxxaf";



            // using Azure.Identity;
            var options = new TokenCredentialOptions
            {
                AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
            };



            var userName = "[email protected]";
            var password = "Aaxxxxxxxxxxx@";



            // https://learn.microsoft.com/dotnet/api/azure.identity.usernamepasswordcredential
            var userNamePasswordCredential = new UsernamePasswordCredential(
                userName, password, tenantId, clientId, options);
            GraphServiceClient graphClient = new GraphServiceClient(userNamePasswordCredential, scopes);



            var chat = new Chat
            {
                ChatType = ChatType.OneOnOne,
                Members = new ChatMembersCollectionPage()
{
    new AadUserConversationMember
    {
        Roles = new List<String>()
        {
            "owner"
        },
        AdditionalData = new Dictionary<string, object>()
        {
            {"[email protected]", "https://graph.microsoft.com/v1.0/users[comboBox1.Text]"}
        }
    },
    new AadUserConversationMember
    {
        Roles = new List<String>()
        {
            "owner"
        },
        AdditionalData = new Dictionary<string, object>()
        {
            {"[email protected]", "https://graph.microsoft.com/v1.0/users/[comboBox2.Text]"}
        }
    }
}
            };
           
            await graphClient.Chats
                .Request()
                .AddAsync(chat);




        }
    }

согласно API-документу, после того, как вы отправите запрос на создание чата, он вернет вам идентификатор в ответе. это id, который вам нужен, или вы не можете получить идентификатор в качестве ответа?

Tiny Wang 20.10.2022 07:25

@TinyWang Я думаю, что не могу получить идентификатор в качестве ответа.

Johnny 20.10.2022 07:53

Не могли бы вы сообщить мне, помог ли мой код ниже?

Tiny Wang 25.10.2022 05:14

Если вы считаете, что мой пост может быть полезен другим, кто сталкивается с похожей проблемой, не могли бы вы принять его в качестве ответа, нажав √ рядом с ним? Заранее спасибо

Tiny Wang 25.10.2022 05:52
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
4
129
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вот образец из документа API.

Пожалуйста, попробуйте дать приложению разрешение API и попробуйте код ниже.

using Microsoft.Graph;
using Azure.Identity;

var scopes = new[] { "https://graph.microsoft.com/.default" };
var tenantId = "tenant_name.onmicrosoft.com";
var clientId = "aad_app_id";
var clientSecret = "client_secret";
var clientSecretCredential = new ClientSecretCredential(
                tenantId, clientId, clientSecret);
var graphClient = new GraphServiceClient(clientSecretCredential, scopes);
var chat = new Chat
{
    ChatType = ChatType.OneOnOne,
    Members = new ChatMembersCollectionPage()
    {
        new AadUserConversationMember
        {
            Roles = new List<String>()
            {
                "owner"
            },
            AdditionalData = new Dictionary<string, object>()
            {
                {"[email protected]", "https://graph.microsoft.com/v1.0/users('8b081ef6-4792-4def-b2c9-c363a1bf41d5')"}
            }
        },
        new AadUserConversationMember
        {
            Roles = new List<String>()
            {
                "owner"
            },
            AdditionalData = new Dictionary<string, object>()
            {
                {"[email protected]", "https://graph.microsoft.com/v1.0/users('82af01c5-f7cc-4a2e-a728-3a5df21afd9d')"}
            }
        }
    }
};

var res = await graphClient.Chats.Request().AddAsync(chat);

Другие вопросы по теме