1

我正在尝试按照此处的说明在 Skype for Business Online 中使用 REST API: https ://msdn.microsoft.com/EN-US/library/office/mt590891(v=office.16).aspx 。

我第一次调用发现服务,然后为用户取回发现 URL;对我来说看起来像这样: https ://webdir0b.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user

然后我调用 Azure 并成功获取https://webdir0b.online.lync.com的访问令牌。下一步是问题所在 - 我再次向用户的发现 URL 发出请求并包含访问令牌。调用成功返回,但问题是它在有效负载中没有文档中描述的“应用程序”url。相反,它返回的信息与我调用一般发现端点 ( https://webdir.online.lync.com/autodiscover/autodiscoverservice.svc/root ) 时得到的信息完全相同。我已经三重检查了我正在调用正确的端点,所以......关于为什么在为用户调用发现 Url 时我没有得到预期的有效负载的任何提示?

4

4 回答 4

0

(我真的在回复史蒂夫·佩斯卡吗?:o)

user在我的情况下,对资源执行 GET
GET https://webdir0e.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user?originalDomain=contoso.onmicrosoft.com

返回以下

 <resource rel="user" href="https://webpoolam30e08.infra.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user" xmlns="http://schemas.microsoft.com/rtc/2012/03/ucwa">  
   <link rel="applications" href="https://webpoolam30e08.infra.lync.com/ucwa/oauth/v1/applications" revision="2" />
   <link rel="xframe" href="https://webpoolam30e08.infra.lync.com/Autodiscover/XFrame/XFrame.html" />
 </resource>

因此它包含applications资源的 URI,在哪里发布以创建您的应用程序。我有 O365 E5 许可证

于 2016-06-01T20:08:16.877 回答
0

我会尽量简短地回答 - 我得到了这个工作。第一个问题 - 当你没有在结果中得到“应用程序”时,你应该有一个“重定向”值。继续遵循并针对它执行 GET(使用获取访问令牌和添加 auth 标头的过程),最终您应该获得应用程序 Url。第二个问题 - 获得应用程序 URL 后,您需要获取另一个访问令牌并使用应用程序 URL 的主机名作为资源 ID。然后您可以发布和创建您的应用程序。真的希望这可以帮助某人。:-)

于 2016-06-10T19:20:01.670 回答
0

正确的。当调用用户资源的结果不包含应用程序时,会包含一个重定向值。这是一个例子:

来电:

https://webdir0b.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user

可能返回以下内容:

{"_links":{"self":{"href":"https://webdir0b.online.lync.com/Autodiscover/AutodiscoverService.svc/root/user"},"xframe":{"href":"https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root/xframe"},"redirect":{"href":"https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root"}}}

其中包括此重定向

"redirect":{"href":"https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root"}}}

若要继续,您需要进行 Azure AD 身份验证调用,仅将 protocol://servername 的值作为资源传递。这意味着减少以下内容:

https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root

就是这样:

https://webdir2a.online.lync.com/

既然您拥有 webdir2a.online.lync.com 的有效令牌,那么您需要将“/oauth/user”附加到重定向 URL。您会注意到最初的调用包含在 URL 中,而重定向 URL 没有。

调用更新后的重定向 URL

https://webdir2a.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user

你应该得到你所追求的:

{"_links":{"self":{"href":"https://webpooldm12a04.infra.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user"},"applications":{"href":"https://webpooldm12a04.infra.lync.com/ucwa/oauth/v1/applications","revision":"2"},"xframe":{"href":"https://webpooldm12a04.infra.lync.com/Autodiscover/XFrame/XFrame.html"}}}

哪个是应用程序资源

"applications":{"href":"https://webpooldm12a04.infra.lync.com/ucwa/oauth/v1/applications","revision":"2"}

对于感兴趣的人,我创建了一个基于 .NET 的控制台应用程序,该应用程序演示了如何通过 UCWA API 登录到 Skype for Business Online - 并在此过程中处理自动发现过程、重定向、应用程序创建等事物。

于 2016-06-29T18:39:14.133 回答
0

我正在尝试按照此处的说明在 Skype for Business Online 中使用 REST API:https ://msdn.microsoft.com/EN-US/library/office/mt590891(v=office.16).aspx 。

我第一次调用发现服务,然后为用户取回发现 URL;对我来说看起来像这样:https ://webdir0b.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user

然后我调用 Azure 并成功获取https://webdir0b.online.lync.com的访问令牌。下一步是问题所在 - 我再次向用户的发现 URL 发出请求并包含访问令牌。我收到500 - 内部服务器错误。您要查找的资源有问题,无法显示。

于 2017-11-10T10:15:17.907 回答