无法为Skype for Business获取应用程序URL

时间:2016-05-24 20:15:29

标签: skype-for-business ucwa skypedeveloper

我正在尝试按照此处的说明在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 个答案:

答案 0 :(得分:0)

(我真的回答了Steve Pescka?: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,POST的位置以创建应用程序。 我有O365 E5许可证

答案 1 :(得分:0)

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

答案 2 :(得分: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则没有。

调用更新的重定向网址

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 - 并且这样做,处理自动发现过程,重定向,创建应用程序,除其他外。

答案 3 :(得分: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 - 内部服务器错误。您正在寻找的资源存在问题,无法显示。