我正在https://ucwa.skype.com/websdk上玩交互式web。我成功地注册了Azure广告登录。使用F12工具,我可以看到,我已经获得了一个有效的oauth令牌。
现在,我使用这个令牌,并试图通过这样的get请求获取person对象:_https://webpoolam30e08.infra.lync.com/ucwa/oauth/v1/applications/113782897528/me
其结果是:
{
"uri": "sip:xxx@yyy.de",
"name": "john doe",
"_links": {
"self": {
"href": "/ucwa/oauth/v1/applications/111364079681/me"
}
},
"rel": "me"}
我所期望的是更多关于我的信息:
{
"uri": "sip:xxx@yyy.de",
"name": "john doe",
"emailAddresses": [
"xxx"
],
"company": "my company name",
"workPhoneNumber": "tel:+123456789",
"endpointUri": "sip:xxx;opaque=user:epid:4JNzkgeuabct-CSuIgYV8gAA;gruu",
"_links": {
"self": {
"href": "/ucwa/oauth/v1/applications/113782897528/me"
},
"note": {
"href": "/ucwa/oauth/v1/applications/113782897528/me/note"
},
"presence": {
"href": "/ucwa/oauth/v1/applications/113782897528/me/presence"
},
"location": {
"href": "/ucwa/oauth/v1/applications/113782897528/me/location"
},
"reportMyActivity": {
"href": "/ucwa/oauth/v1/applications/113782897528/me/reportMyActivity"
},
"photo": {
"href": "/ucwa/oauth/v1/applications/113782897528/photos/xxxx"
}
},
"rel": "me"
}我发现结果取决于应用程序id。如果我打开Office365 web门户(_https://outlook.office.com/owa)并使用F12工具搜索有效的应用程序id,那么我将得到预期的结果。即使使用我从交互式web示例中获得的OAuth令牌。所以这不可能是安全或许可问题?我授予对蔚蓝管理门户中所有权限的访问权。
同样奇怪的是,对于这两个非常相似的请求,我得到了具有相同oauth令牌的不同状态代码。
-> 200 OK
-> 403紫禁赛
{
"code": "Forbidden",
"message": "The requested operation isn't allowed."
}那么,为什么这两个应用程序和获得相同结果所需的内容之间存在差异呢?天蓝色配置中缺少什么吗?
谢谢你的帮助
发布于 2016-07-26 14:32:40
UCWA和更大程度上,Skype for Business Online正处于预览阶段,这可能有助于解释为什么您在这两个应用程序之间看到了不同的结果集。当以用户身份登录到O365门户时,您很可能从获得补充信息,或者该门户能够使用未公开的内部API(和权限)从UCWA接收更多信息。
如果我没记错的话,上面的请求示例如下:
您所看到的是,在使用在线客户端时,UCWA当前还没有启用存在(更好的说法可能是API没有公开)。
发布于 2016-07-27 21:06:05
通过“读取/写入Skype用户信息(预览)”委托权限,可以在预览模式下访问存在。您可能无法访问它,但下面是Azure AD中的图片:

我创建了一个基于UCWA的本地应用程序,它连接到SfB在线,并允许您设置您的存在:
https://github.com/tamhinsf/ucwa-sfbo-console
只需按照自述文件注册自己的应用程序,并将设置插入到我的代码中即可。我将每个API调用的结果输出到控制台,这样您就可以看到发生了什么。
我还制作了Interactive示例的分叉,它将Azure AD设置合并到一个文件中。您可能希望本地副本更仔细地检查和修改调用:
发布于 2016-07-27 00:27:41
在应用程序之间共享这样的令牌似乎是一种安全冲突。令牌是为特定资源提供的,服务器可能会验证所提供的令牌是否与创建应用程序的作用域匹配。您试图通过共享令牌来执行什么场景?
https://stackoverflow.com/questions/38531248
复制相似问题