首页 > 解决方案 > 在 Python 中使用 Azure Graph API 使用基于筛选器的查询参数

问题描述

我正在使用 MSAL Graph API 从 Azure AD 检索数据。由于我想要特定信息,因此我尝试使用可以作为参数传递的 $filter 。但是由于 $filter 接受 AND/OR 子句,我尝试通过传递多个值来获取信息,如下所示

app = ConfidentialClientApplication(client_id = patclientid,
                                authority="https://login.microsoftonline.com/tenantID",
                                client_credential = patclient_credential)

parameters = {'$filter':'createdDateTime ge 2020-06-18 and appDisplayName eq appName'}

if "access_token" in result:
print(result['access_token'])
user_data = requests.get(  # Use token to call downstream service
    "https://graph.microsoft.com/beta/auditLogs/signIns",
    headers={'Authorization': 'Bearer ' + result['access_token']},
    params=parameters).json()

在上面运行时,它给了我以下错误

"code": "BadRequest",
"message": "Invalid filter clause",

我在 POSTMAN 中尝试过同样的请求,效果很好。但它不知何故在python中不起作用。

标签: python-3.xazurepython-requestsazure-active-directoryazure-ad-graph-api

解决方案


问题是由于缺少"( ') 字符引起的,只需使用:

parameters = {'$filter':'createdDateTime ge 2020-06-18 and appDisplayName eq \'OFSC \' '}

推荐阅读