使用 UCWA API 安排 Lync 会议

Posted

技术标签:

【中文标题】使用 UCWA API 安排 Lync 会议【英文标题】:Using UCWA API to schedule Lync meetings 【发布时间】:2016-10-24 10:19:37 【问题描述】:

我已经在 C# 中验证并授权了 UCWA API。应用程序 ID 也是使用生成的令牌生成的。当我尝试使用以下代码创建 lync 会议时,我收到错误“内部服务器错误”。 错误:-

"code":"ServiceFailure","message":"Your request couldn't be completed.","debugInfo":"errorReportId":"e2c35f5e0b274c4185d08837dd7e16a3"

我的代码是:-

onlinemeetingURL = "https://lynctswebint.Mycompany.com/ucwa/oauth/v1/applications/101030060103/onlineMeetings/myOnlineMeetings";
    request = new RestRequest(onlinemeetingURL, Method.POST);
    request.AddHeader("Accept", "application/json");
    request.AddHeader("Host", "lynctswebint.Mycompany.com");
    request.AddHeader("expirationTime","1482572914000");
    request.AddHeader("Authorization", String.Format("0 1", applicationTokenType, applicationToken));
    var applicationBody = @"""lobbyBypassForPhoneUsers"" : ""Disabled"",""phoneUserAdmission"" : ""Disabled"",""description"":""0"",""subject"":""1"",""attendees"":""2"",""leaders"":""3""";
    request.RequestFormat = DataFormat.Xml;
    request.AddParameter(
        "application/json",
       "" + string.Format(applicationBody, "This is a test for UCWA meeting creation", "Test UCWA meeting creation", "sip:testonline.lync@Mycompany.com", "sip:lync.test@Mycompany.com") + "",
        ParameterType.RequestBody);
    ucwaClient.ExecuteAsync(request, this.functionToCall);

没有关于此错误的更多详细信息。我正在为此使用 restSharp 库。

【问题讨论】:

您能否在网络跟踪或其他方式中显示您的请求正文。发送 JSON 时 request.RequestFormat 设置为 DataFormat.Xml 是否有原因? 【参考方案1】:

除了提到的负载格式规范不一致之外,您的代码/负载几乎没有错误。

例如,expirationTime 信息也必须在有效负载正文中提供,而不是作为请求标头的一部分。 此外,attendeesleaders 应该是数组。

我建议您仔细阅读并实施myOnlineMeetings resource

上记录的内容

【讨论】:

感谢您的回复。我根据您的建议进行了更正,但仍然出现相同的错误。通过您给定的链接,似乎错误与 nvalidExchangeServerVersion 有关,我使用的服务帐户没有关联邮箱,这可能是错误的原因。 感谢分享的链接。问题已解决,我发布了我的更正。谢谢:-)【参考方案2】:

在我的代码中遵循 sn-p 是不正确的。

request.AddParameter(
        "application/json",
       "" + string.Format(applicationBody, "This is a test for UCWA meeting creation", "Test UCWA meeting creation", "sip:testonline.lync@Mycompany.com", "sip:lync.test@Mycompany.com") + "",
        ParameterType.RequestBody);

当我传递字符串时,我必须为与会者和领导传递数组。 我将其更正如下,现在可以正常工作了。

request.AddParameter("application/json", "\r\n \"attendanceAnnouncementsStatus\":\"Enabled\",\r\n \"description\":\"This is a test for UCWA meeting creation\",\r\n \"subject\":\"Test UCWA meeting creation\",\r\n \"attendees\": [\"sip:testonline.lync@mycompany.com\"],\r\n \"leaders\": [\"sip:lync.test@mycompany.com\"]\r\n ", ParameterType.RequestBody)

【讨论】:

以上是关于使用 UCWA API 安排 Lync 会议的主要内容,如果未能解决你的问题,请参考以下文章

使用 rest api 设置与 Skype for business (lync) 的会议

UCWA 可以检索已安排的 Microsoft Outlook 会议吗?

为匿名用户安排 Online Lync 会议

Lync 2010 UMCA 3.0 自动安排会议加入用户

如何以编程方式获取用户需要从 lync 会议中调用的会议 ID?

通过 Lync api 创建只有一个用户的会议 - 立即开会