【问题标题】:Microsoft Graph API: query not workingMicrosoft Graph API:查询不起作用
【发布时间】:2018-08-13 19:19:08
【问题描述】:

我一直在尝试将以下查询与 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>)

谢谢!

【问题讨论】:

  • 你的例子不是很清楚。您正在显示查询参数,但没有显示完整的 URI,因此不清楚调用实际上是如何执行的。您能否包含一个 HTTP 跟踪,显示实际传输的内容?
  • @MarcLaFleur 哦,我刚刚更新了我的问题,在那里你可以看到我发送的 URI。
  • 根据Bad Request异常,表示请求不正确。我假设term = params.get('term') term 的值为 null 或空。您可以使用硬代码值设置term 并再次测试。

标签: python flask active-directory azure-active-directory microsoft-graph-api


【解决方案1】:

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());

【讨论】:

    【解决方案2】:

    您可以先在您的 Python 项目中更改您的查询字符串,以确认其他查询条件是否正常工作。

    如果您的项目和图形浏览器使用不同的用户凭据,您可能需要再次检查权限。

    总而言之,先尝试不同的查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多