Microsoft Teams 是否有办法更新用户的 status/presence?
Does Microsoft Teams have a way to update a user's status/presence?
最近有消息称 Skype For Business 最终将被 Microsoft Teams 取而代之。
我有几个依赖 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,但找不到任何关于更新用户状态的信息。
是否有类似的东西没有列在他们的文档中,允许我自己更改 status/presence?
我很乐意帮助 API 今天的生产或预览,但 Stack Overflow 不是长期路线图讨论的合适平台。最好留给官方渠道在准备就绪时披露。
目前,您是正确的,因为 Microsoft Teams SDK 不包含用于与 Presence 交互的 APIs。这是因为 Teams 本身正在使用 Skype 的 API 镜像 Skype 的存在。您可以使用类似的 API 在您的应用程序中复制此功能。
Unified Communications Web API (UCWA). If you're simply looking to surface Presence (rather than manipulate it), you can retrieve contactPresence. For manipulating the current user's status, you can use presence 是一个不错的起点。
为@MarcLaFleur-MSFT 的回答添加一些颜色...
Teams 中的所有 calling/video/meeting 功能都使用 Skype Consumer 技术的 Office-365 兼容实例。正如@jeroen-mostert 所注意到的,它是一个 REST api,但并不意味着供外部开发人员使用。除了没有记录或支持之外,这些端点还需要一种特殊的访问令牌。
Teams API 的路线图肯定包括存在。但是 API 将成为 Microsoft Graph API 的一部分,而不是您今天使用 Fiddler 或浏览器调试器观察到的内容。
现在我post就可以做到了。使用 python 并稍微修改 skpy 库。
根据文档,url 是
azwcus1-client-s.gateway.messenger.live.com/v1/users/ME/presenceDocs/messagingService
PS:需要在headers中提供'EndpointId'。
检查 https://web.skype.com 以获取对服务器的完整请求。
最近有消息称 Skype For Business 最终将被 Microsoft Teams 取而代之。
我有几个依赖 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,但找不到任何关于更新用户状态的信息。
是否有类似的东西没有列在他们的文档中,允许我自己更改 status/presence?
我很乐意帮助 API 今天的生产或预览,但 Stack Overflow 不是长期路线图讨论的合适平台。最好留给官方渠道在准备就绪时披露。
目前,您是正确的,因为 Microsoft Teams SDK 不包含用于与 Presence 交互的 APIs。这是因为 Teams 本身正在使用 Skype 的 API 镜像 Skype 的存在。您可以使用类似的 API 在您的应用程序中复制此功能。
Unified Communications Web API (UCWA). If you're simply looking to surface Presence (rather than manipulate it), you can retrieve contactPresence. For manipulating the current user's status, you can use presence 是一个不错的起点。
为@MarcLaFleur-MSFT 的回答添加一些颜色...
Teams 中的所有 calling/video/meeting 功能都使用 Skype Consumer 技术的 Office-365 兼容实例。正如@jeroen-mostert 所注意到的,它是一个 REST api,但并不意味着供外部开发人员使用。除了没有记录或支持之外,这些端点还需要一种特殊的访问令牌。
Teams API 的路线图肯定包括存在。但是 API 将成为 Microsoft Graph API 的一部分,而不是您今天使用 Fiddler 或浏览器调试器观察到的内容。
现在我post就可以做到了。使用 python 并稍微修改 skpy 库。
根据文档,url 是 azwcus1-client-s.gateway.messenger.live.com/v1/users/ME/presenceDocs/messagingService
PS:需要在headers中提供'EndpointId'。
检查 https://web.skype.com 以获取对服务器的完整请求。