Microsoft Teams是否有办法更新用户的状态/状态?

时间:2017-10-06 14:44:46

标签: c# microsoft-teams

最新消息称Skype For Business最终将被取消并被微软团队取代。

我有一些依赖Skype For Business的项目,我使用以下代码使用2013 lync SDK更新用户在Skype For Business上的存在。

public static void PublishPresence(ContactAvailability contactAvailability)
{
    var publishData = new Dictionary<PublishableContactInformationType, object>
    {
        {PublishableContactInformationType.Availability, contactAvailability}
    };

        SendPublishRequest(publishData);
}

private static void SendPublishRequest(Dictionary<PublishableContactInformationType, object> publishData)
{
    try
    {
        PublishContactInformation(publishData);
    }
    catch (Exception exception)
    {
        _logger.Error("Cannot publish presence to Lync. Error: " + exception);
    }
}

public static void PublishContactInformation(Dictionary<PublishableContactInformationType, object> publishData)
{
    LyncClient lyncClient = LyncClient.GetClient();

    lyncClient.Self.BeginPublishContactInformation(publishData, ar => lyncClient.Self.EndPublishContactInformation(ar), null);
}

据说我们计划将项目转移到Microsoft Teams。但是,我们查看了当前的Microsoft Teams SDK,但我们找不到有关更新用户状态的任何信息。

他们的文档中是否列出了类似的内容,允许自己更改自己的状态/状态?

2 个答案:

答案 0 :(得分:3)

我很乐意帮助解决今天生产或预览中存在的API,但Stack Overflow不是长期路线图讨论的正确平台。这是官方渠道在准备好时披露的最佳方式。

目前,您的说法是正确的,因为Microsoft Teams SDK不包含用于与Presence交互的API。这是因为Teams本身正在使用Skype的API反映Skype的存在。您可以使用类似的API在应用程序中复制此功能。

一个好的起点是Unified Communications Web API (UCWA)。如果您只是想要表现存在(而不是操纵它),您可以检索contactPresence。要操纵当前用户的状态,您可以使用presence

答案 1 :(得分:3)

为@ MarcLaFleur-MSFT的回答添加一些颜色......

团队中的所有呼叫/视频/会议功能都使用与Skype Consumer技术兼容的Office-365实例。这是一个REST api,正如@ jeroen-mostert所注意到的那样,但并不意味着外部开发人员会使用它。除了未记录或支持的事实外,这些端点还需要一种特殊的访问令牌。

Teams API的路线图肯定包括在线状态。但API将成为Microsoft Graph API的一部分,而不是您今天使用Fiddler或浏览器调试器所观察到的。