Нет результата, возвращаемого с помощью API-интерфейса Valence desire2learn
Я работаю над переходом с SOAP на API валентности. У меня возникли проблемы с несколькими вызовами, такими как получение пользователей (все пользователи, в зависимости от роли, по идентификатору пользователя и т. Д.) И оценки (все варианты).
Я вижу пустой список, возвращенный без элементов. Там нет никакой ошибки. Когда я пытаюсь получить данные с помощью SOAP, я получаю нужные данные.
Я проверил разрешения для "Поиск студентов", поэтому технически я должен что-то получать, когда я пытаюсь получить всех пользователей или по идентификатору роли студентов. Что еще мне здесь не хватает...
1 ответ
Механизм аутентификации службы D2LWS позволяет вызывающей стороне API быть привилегированной вызывающей стороной. API-интерфейсы Valence Learning Framework используют другую модель аутентификации: идентификатор пользователя / ключевые токены, которые идентифицируют пользователя, используются бэкэндом для ограничения функциональности вызовов. То есть: аутентифицированный пользователь должен иметь доступ к тем же функциям и данным, которые пользователь получил бы через веб-интерфейс, и не более.
В этом конкретном случае вызовы завершаются успешно: они отправляют обратно все элементы в наборе результатов, которые у вашего вызывающего пользователя есть права на просмотр - ни один из них.
Это почти наверняка проблема с привилегиями роли, предоставленными вашему вызывающему пользователю, и отладка разрешений вокруг вызовов может быть сложной. Документация проекта Valence предоставляет пошаговое руководство по исследованию разрешений ролей, которое может пролить здесь возможный подход, особенно в отношении вызовов для получения доступа к пользовательским записям (или свойствам, которые появляются в пользовательских записях).
Как показано в пошаговом руководстве, существуют общие аспекты /d2l/api/lp/{version}/users/
которые вводят разрешения в игру:
Если вы пытаетесь фильтровать с помощью параметра запроса, имеет ли контекст вызывающего пользователя разрешения на использование данных, по которым вы хотите фильтровать
Имеет ли контекст вызывающего пользователя разрешение на просмотр свойств, на которые влияют параметры конфиденциальности информации о пользователе
Имеет ли вызывающий пользователь разрешение на поиск всех ролей пользователей, которые ему нужны, чтобы найти пользователей в наборе результатов
Вызов пользователя работает в корневой организационной единице, поэтому разрешения, которые требует вызывающий пользователь, должны быть установлены для типа организационной организационной единицы.
Напротив, вызовы API, связанные с оценками, работают не в корневой организационной единице, а обычно в предложениях, разделах или группах курса. Разрешения, связанные с вызовами, будут проверены в связанных типах организационных единиц, поэтому вызывающему пользователю потребуются соответствующие разрешения для этих типов. Кроме того, многие из вызовов, связанных с предложениями курса (также разделами и группами), требуют, чтобы вызывающий пользователь был зарегистрирован в рассматриваемом органе (и в некоторых случаях явно зарегистрирован, а не просто зарегистрирован каскадной регистрацией).
Если вы уверены, что ваш контекст вызывающего пользователя действительно дает вам доступ к этим вещам (и позволяет получить доступ к этим данным через веб-интерфейс), и вы все еще видите такое несоответствие при вызове через API, то вы возможно, обнаружил какой-то дефект, и вам следует попросить контактную информацию вашей организации или менеджера по работе с клиентами открыть заявку в службу поддержки, чтобы сообщить об этом через службу поддержки Desire2Learn.