无法获取 Skype for Business 的应用程序 Url

Not Able to Get Applications Url for Skype for Business

我正尝试按照此处的说明在 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. The next step is where things break down - I make a request again to the discovery Url for the user and include the access token. The call returns successfully, but the problem is that it doesn't have the "applications" url in the payload as described in the documentation. Instead it returns the same exact info as I got when I called the general discovery endpoint (https://webdir.online.lync.com/autodiscover/autodiscoverservice.svc/root) 的访问令牌。我已经三次检查我是否调用了正确的端点,所以...关于为什么在为用户调用发现 Url 时我没有获得预期负载的任何提示?

(我真的在回复 Steve Pescka 吗?:o)

在我的例子中,在 user 资源上执行 GET
GET https://webdir0e.online.lync.com/Autodiscover/AutodiscoverService.svc/root/oauth/user?originalDomain=contoso.onmicrosoft.com

returns以下

 <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,POST 用于创建您的应用程序。 我有 O365 E5 许可证

我会尽量简短地回答 - 我已经成功了。第一个问题 - 当你没有在结果中得到 "applications" 时,你应该有一个 "redirect" 值。继续关注并针对它执行 GET(使用获取访问令牌和添加身份验证 header 的过程),最终您应该获得应用程序 Url。第二个问题 - 在您获得应用程序 URL 后,您需要获取另一个访问令牌并使用应用程序 URL 的主机名作为资源 ID。然后您可以 post 并创建您的应用程序。真的希望这对某人有帮助。 :-)

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

这里有一个电话:

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

可能 return 以下内容:

{"_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-based console app 来演示如何通过 UCWA API 登录 Skype for Business Online - 并在这样做时处理自动发现过程,重新- 指导、应用程序创建等。

我正在尝试按照此处的说明在 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 - 内部服务器 error.There 是您要查找的资源的问题,无法显示。