求问:是否有支持.NET Core的Skype操作相关NuGet包及示例代码?
.NET Core下操作Skype的可行方案
目前微软官方没有推出专门针对.NET Core平台、直接操作Skype的独立NuGet包,但可以借助Microsoft Graph SDK实现Skype相关操作——因为Skype for Business已整合进Microsoft Teams生态,其能力已纳入Microsoft Graph的覆盖范围,而Microsoft Graph有官方支持.NET Core的SDK。
1. 所需NuGet包
使用官方的Microsoft.Graph包,这是适配.NET Core的最新工具包,可通过以下方式安装:
- NuGet包管理器命令:
Install-Package Microsoft.Graph
- .NET CLI命令:
dotnet add package Microsoft.Graph
2. 示例代码(以获取Skype企业版联系人为例)
首先需要在Azure AD中注册应用并配置权限,以下是基于客户端凭据模式的示例:
using Microsoft.Graph; using Azure.Identity; // 替换为你的Azure AD租户ID、应用ID和密钥 var tenantId = "your-tenant-id"; var clientId = "your-client-id"; var clientSecret = "your-client-secret"; // 初始化Graph客户端 var scopes = new[] { "https://graph.microsoft.com/.default" }; var credential = new ClientSecretCredential(tenantId, clientId, clientSecret); var graphClient = new GraphServiceClient(credential, scopes); try { // 获取指定用户的Skype联系人(需为Skype for Business账号) var contacts = await graphClient.Users["target-user-id"].Contacts.Request().GetAsync(); foreach (var contact in contacts) { Console.WriteLine($"姓名:{contact.DisplayName} | Skype ID:{contact.SkypeForBusinessId}"); } } catch (ServiceException ex) { Console.WriteLine($"请求失败:{ex.Message}"); }
关键说明
- 上述方案仅针对Skype for Business(企业版),个人版Skype目前没有官方公开的.NET SDK支持,若要操作个人版,只能尝试调用Skype非公开Web API,但无官方维护,稳定性无法保障。
- 应用需在Azure AD中配置对应权限(如
Contacts.Read),否则会出现权限不足的错误。
内容的提问来源于stack exchange,提问作者Vincent
相关产品推荐
相关产品推荐

