[英]Microsoft Graph API: query not working
我一直在尝试将以下查询与 Microsoft 图形 API 一起使用:
"groups?$filter=startswith(displayName, '" + term + "')"
所以这个term
的值取自输入的html:
并通过 python 我插入它以使用查询执行搜索:
@APP.route('/search')
def search():
params = request.args.to_dict()
term = params.get('term')
queryGroup = "groups?$filter=startswith(displayName, '" + term + "')"
result = MSGRAPH.get(queryGroup, headers=request_headers()).data
return flask.render_template('home-page.html', result=result)
当我尝试在 Azure AD 中查找现有组时,结果是:
b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">\r\n<HTML><HEAD><TITLE>Bad Request</TITLE>\r\n<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>\r\n<BODY><h2>Bad Request</h2>\r\n<hr><p>HTTP Error 400. The request is badly formed.</p>\r\n</BODY></HTML>\r\n'
根据 Microsoft 的文档,我发现我的查询结构良好。
我希望你们帮助我知道,这里可能会失败什么?
我正在使用 API 的 v1.0,并在图形资源管理器中使用相同版本进行了尝试。(在那里成功了,这对我来说很奇怪)
我一直在考虑使用$search
参数,但它不适用于这种类型的集合(组)
我发送的完整 URI 是:
https://graph.microsoft.com/v1.0/groups?$filter=startswith(displayName,<here I put the searched value>)
谢谢!
您可以先在 Python 项目中更改查询字符串,以确认其他查询条件是否正常。
如果您的项目和图形浏览器使用不同的用户凭据,您可能需要再次检查权限。
总而言之,首先尝试不同的查询。
400 表示错误请求。 这可能是因为 url 编码。 Url 编码查询字符串。
就像是
String query = "Extensions($filter=Id eq 'c.i.m.p.server.entities.outlook.Event'";
String url = "https://graph.microsoft.com/v1.0/users/{userId}/calendars/{calendarId}/events?
$expand=" + URLEncoder.encode(query, StandardCharsets.UTF_8.name());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.