Я пытаюсь получить ответ на создание функции чата с помощью 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);
}
}
@TinyWang Я думаю, что не могу получить идентификатор в качестве ответа.
Не могли бы вы сообщить мне, помог ли мой код ниже?
Если вы считаете, что мой пост может быть полезен другим, кто сталкивается с похожей проблемой, не могли бы вы принять его в качестве ответа, нажав √ рядом с ним? Заранее спасибо
вот образец из документа 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);
согласно API-документу, после того, как вы отправите запрос на создание чата, он вернет вам идентификатор в ответе. это
id
, который вам нужен, или вы не можете получить идентификатор в качестве ответа?