构建机器人,不能使用以/ me /开头的任何查询

时间:2016-04-22 20:18:53

标签: microsoft-graph

尝试从仅限应用程序的经过身份验证的机器人实施人员搜索(使用名称或其他任何内容)时遇到障碍。有没有办法让机器人在没有身份的情况下查询图表?我可以这样做:

 GET "https://microsoft.graph.com/beta/users/" + userPrincipalName + "@hooli.com"   

但我不能这样做:

GET "https://microsoft.graph.com/beta/me/people/?$search=" + "\"" + query + "\""

有道理,机器人不是用户对象。我只是想看看你对这个场景有什么建议。 (我们的想法是将这个机器人发布到SharePoint,并最终发布到SfB,当它成为一个真正的选择时。)

1 个答案:

答案 0 :(得分:0)

非常酷,您使用bot方案连接到Microsoft Graph!这里有几件事。首先,/ me构造要求用户已登录,因为/ me是当前登录用户的别名。正如您所发现的那样,仅限应用程序无法使用此请求。您还发现只能通过用户实体进行更基本的搜索。通过使用startswith搜索和“或”连接子句(见下文),您可以在这里做一些更聪明的事情。但是,用户实体目前不支持$ search。

GET https://graph.microsoft.com/v1.0/users?$filter=startswith(displayName,'xxx') or startswith(mail, 'xxx') or startswith(userPrincipalName, 'xxx')

其次,人物实体是从登录用户的角度进行的搜索。它目前无法通过应用程序完成(人们仅在我的支持下)。需要让其他人提供有关是否通过此API支持通用人员搜索的一些信息。人们还在预览中。

如果建议的解决方法(使用startswith)现在已足够,请告知我们,并且一旦有更强大的$ search支持,就可以在以后更换。

另一件事 - 如果用户正在与机器人交互(比如通过网站或移动客户端) - 用户是否已经登录,并且机器人使用on behalf of flow来调用MS Graph从您的机器人作为用户? 希望这会有所帮助,