#python #azure-active-directory #microsoft-graph-api #azure-ad-graph-api
#python #azure-active-directory #microsoft-graph-api #azure-ad-graph-api
Вопрос:
У меня есть python
код, который получает всех пользователей из azure ad
. Ниже приведен код:
import http.client
import json
import requests
def get_token():
r = requests.post("https://login.microsoftonline.com/" "<tenant_id>" "/oauth2/token",
data={"grant_type": "client_credentials",
"client_secret": "<client_secret>",
"client_id": "<client_id>",
"resource": "https://graph.microsoft.com"})
ret_body = r.json()
return ret_body['access_token']
token = get_token()
headers = {'Authorization': 'Bearer ' token}
conn = http.client.HTTPSConnection('graph.microsoft.com')
conn.request("GET", "/v1.0/users", "", headers)
response = conn.getresponse()
data = response.read()
data = data.decode('utf-8')
data = json.loads(data)
print(len(data['value']))
Когда я запускаю приведенный выше код, я получаю правильный ответ и все данные. Но некоторые пользователи отсутствуют. Он возвращает данные только до тех пор, пока имена с K
и некоторые имена, начинающиеся с S
, не будут присутствовать в данных. Я также проверяю длину списка пользователей, и она всегда равна 100, а общее количество добавленных пользователей равно 178
Я не уверен, почему API возвращает только список пользователей 100, а не полные пользователи 178. Может кто-нибудь, пожалуйста, дайте мне представление о том, что не так с кодом или API. Пожалуйста, помогите. Спасибо
Комментарии:
1. Может быть, он вернул только первую страницу? Документы по подкачке: docs.microsoft.com/en-us/graph /…
2. @juunas Спасибо, это сработало. Пожалуйста, ответьте на вопрос
Ответ №1:
Graph API по умолчанию вернет первых 100 пользователей на первой странице. Вам необходимо запросить следующие страницы, документы: https://docs.microsoft.com/en-us/graph/paging?context=graph/api/1.0amp;view=graph-rest-1.0 .
В @odata.nextLink
ответе возвращается свойство, вы можете запросить его, чтобы получить следующую страницу.