kor*_*k21 3 com skype-for-business microsoft-teams
我正在尝试访问 Microsoft Teams 客户端COM 对象。
因为在 PowerShell 中使用 Skype For Business 和 Lync 客户端对象是可能的。
与此恰恰相反。
[Reflection.Assembly]::LoadFile("C:\temp\Microsoft.Lync.Model.dll")
[Reflection.Assembly]::LoadFile("C:\temp\microsoft.office.uc.dll")
$lyncclient = [Microsoft.Lync.Model.LyncClient]::GetClient()
$lyncclient2 = [Microsoft.Lync.Model.ContactInformationType]::Availability
$lyncclient.Self.Contact.GetContactInformation($lyncclient2);
Run Code Online (Sandbox Code Playgroud)
此代码会导致当前 Lync/Skype 用户存在。
$teamsClient = [Microsoft.Office.Uc.IUCOfficeIntegration]
$teamsClient.GetInterfaces()
Run Code Online (Sandbox Code Playgroud)
在小文章https://www.msxfaq.de/teams/api/teams_presence.htm之后 ,我什至无法仅在 Get-ChildItem HKCU 中接收 Get-ChildItem HKLM 中的 Com obj 列表。
我的目标是使用与 Outlook 相同的功能来读取 MS Teams 中用户的状态。
Teams 仍然通过 COM 公开一些功能。它实现了 IUCOfficeIntegration 接口,因此 Microsoft Outlook 可以在 Outlook 本身中显示联系人的 Teams 可用性状态。
有关 Office 集成如何工作的更多信息可以在此处找到。
我只是快速描述一下我通过 COM 接收可用性信息所做的工作。请注意,这是 C# 代码。我希望它仍然有帮助。
获取 Teams COM 类的 ClassID。
安装 Outlook 和 Teams 后,Teams 会将自身注册为能够向 Outlook 提供可用性信息的 IM 应用程序。这是通过编写一些注册表节点来完成的。ClassID 可以在此处找到 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\IM Providers\Teams
获取可用性:
为此,我基本上颠倒了链接文章中展示如何实现 Office 集成客户端的所有步骤,因为我想使用 Teams 客户端。请注意,需要安装 Lync SDK ( https://www.microsoft.com/en-us/download/details.aspx?id=36824 ),因为所有 Office 集成接口均在其中定义。(需要引用 Microsoft.Office.Uc.dll)。也许这个图书馆可以
class Program
{
static void Main()
{
var version = "15.0.0.0";
var teams = (IUCOfficeIntegration) new TeamsOfficeIntegration();
var client = (IClient) teams.GetInterface(version, OIInterface.oiInterfaceILyncClient);
var contactManager = client.ContactManager;
var uri = "name@company.com";
var contact = contactManager.GetContactByUri(uri);
var availibility =
(ContactAvailability) contact.GetContactInformation(ContactInformationType.ucPresenceAvailability);
}
[ComImport, Guid("00425F68-FFC1-445F-8EDF-EF78B84BA1C7")]
public class TeamsOfficeIntegration
{
}
}
Run Code Online (Sandbox Code Playgroud)
我会尝试上传一个小项目到GitHub来演示......
由于 Powershell 基于 .NET,这应该也是可能的。或者可以编写一个小型 C# 互操作库。
| 归档时间: |
|
| 查看次数: |
2146 次 |
| 最近记录: |