Нет результата, возвращаемого с помощью API-интерфейса Valence desire2learn

Я работаю над переходом с SOAP на API валентности. У меня возникли проблемы с несколькими вызовами, такими как получение пользователей (все пользователи, в зависимости от роли, по идентификатору пользователя и т. Д.) И оценки (все варианты).

Я вижу пустой список, возвращенный без элементов. Там нет никакой ошибки. Когда я пытаюсь получить данные с помощью SOAP, я получаю нужные данные.

Я проверил разрешения для "Поиск студентов", поэтому технически я должен что-то получать, когда я пытаюсь получить всех пользователей или по идентификатору роли студентов. Что еще мне здесь не хватает...

1 ответ

Решение

Механизм аутентификации службы D2LWS позволяет вызывающей стороне API быть привилегированной вызывающей стороной. API-интерфейсы Valence Learning Framework используют другую модель аутентификации: идентификатор пользователя / ключевые токены, которые идентифицируют пользователя, используются бэкэндом для ограничения функциональности вызовов. То есть: аутентифицированный пользователь должен иметь доступ к тем же функциям и данным, которые пользователь получил бы через веб-интерфейс, и не более.

В этом конкретном случае вызовы завершаются успешно: они отправляют обратно все элементы в наборе результатов, которые у вашего вызывающего пользователя есть права на просмотр - ни один из них.

Это почти наверняка проблема с привилегиями роли, предоставленными вашему вызывающему пользователю, и отладка разрешений вокруг вызовов может быть сложной. Документация проекта Valence предоставляет пошаговое руководство по исследованию разрешений ролей, которое может пролить здесь возможный подход, особенно в отношении вызовов для получения доступа к пользовательским записям (или свойствам, которые появляются в пользовательских записях).

Как показано в пошаговом руководстве, существуют общие аспекты /d2l/api/lp/{version}/users/ которые вводят разрешения в игру:

  • Если вы пытаетесь фильтровать с помощью параметра запроса, имеет ли контекст вызывающего пользователя разрешения на использование данных, по которым вы хотите фильтровать

  • Имеет ли контекст вызывающего пользователя разрешение на просмотр свойств, на которые влияют параметры конфиденциальности информации о пользователе

  • Имеет ли вызывающий пользователь разрешение на поиск всех ролей пользователей, которые ему нужны, чтобы найти пользователей в наборе результатов

Вызов пользователя работает в корневой организационной единице, поэтому разрешения, которые требует вызывающий пользователь, должны быть установлены для типа организационной организационной единицы.

Напротив, вызовы API, связанные с оценками, работают не в корневой организационной единице, а обычно в предложениях, разделах или группах курса. Разрешения, связанные с вызовами, будут проверены в связанных типах организационных единиц, поэтому вызывающему пользователю потребуются соответствующие разрешения для этих типов. Кроме того, многие из вызовов, связанных с предложениями курса (также разделами и группами), требуют, чтобы вызывающий пользователь был зарегистрирован в рассматриваемом органе (и в некоторых случаях явно зарегистрирован, а не просто зарегистрирован каскадной регистрацией).

Если вы уверены, что ваш контекст вызывающего пользователя действительно дает вам доступ к этим вещам (и позволяет получить доступ к этим данным через веб-интерфейс), и вы все еще видите такое несоответствие при вызове через API, то вы возможно, обнаружил какой-то дефект, и вам следует попросить контактную информацию вашей организации или менеджера по работе с клиентами открыть заявку в службу поддержки, чтобы сообщить об этом через службу поддержки Desire2Learn.

Другие вопросы по тегам