Роли учащихся в Desire2Learn

Как я могу получить список студентов из D2L? Я хочу получать оценки студентов, и когда я получаю список классов, я получаю оценки как преподавателей, так и студентов.


person new_linux_user    schedule 25.06.2012    source источник


Ответы (1)


Вы можете использовать /d2l/api/lp/{ver}/enrollments/orgUnits/{orgUnitId}/users/. При этом будет получен постраничный набор результатов всех пользователей, зачисленных на предлагаемый курс, идентифицированный идентификатором orgUnitId. Обратите внимание, что вы можете отфильтровать набор результатов с помощью параметра запроса roleId; если вы знаете идентификатор роли для студентов, вы можете предоставить его, чтобы вернуть только пользователей в курсе с ролью студента:

https://your.lms/d2l/api/lp/1.0/enrollments/orgUnits/6784/users/?roleId=78&{all_auth_qparms}

Обратите внимание, что для вызовов API регистрации требуются определенные ролевые разрешения контекста вызывающего пользователя. Аккаунту вызывающего пользователя требуется разрешение «Просмотр регистраций пользователей», а также разрешение «Поиск ‹rolename>» для зарегистрированных ролей пользователей, видимых в выходных данных:

  • Без «Просмотра регистраций пользователей» у вас вообще не будет разрешения запрашивать регистрации, и вы, скорее всего, получите ответ 403 (нет разрешения или запрещено).

  • Если у вас нет разрешения «Поиск учащегося» или «Поиск инструктора» (или любых других ваших локальных ролей), то, хотя вы можете вызвать вызов для регистрации, список зарегистрированных пользователей, get back будет отфильтрован только до тех ролей, которые вы можете «найти».


Изменить. Я исправил этот ответ; ID роли по умолчанию для студентов был не 3 (я думаю, это ID OrgUnitID по умолчанию для предложений курсов). На нашем тестовом сервере идентификатор роли студента по умолчанию — «78».

Изменить 2. Я добавил дополнительную информацию о разрешениях, необходимых для получения полезной информации из вызова регистрации.

person Viktor Haag    schedule 25.06.2012
comment
Я пытаюсь использовать следующий API для получения всех ролей (откуда я могу извлечь идентификаторы ролей), но он возвращает значение null, знаете ли вы, почему?/d2l/api/lp/(D2LVERSION: версия)/roles/ - person new_linux_user; 25.06.2012
comment
Кроме того, когда я размещаю следующий запрос, он выдает ошибку HTTP 400. test-camosun.desire2learn.com/d2l/api/lp/1.0/enrollments/ И, если я попытаюсь разместить &roleId=3 или roleID=3, где-нибудь еще в URL, он выдает ошибку HTTP 403. Какие-либо предложения??? - person new_linux_user; 25.06.2012
comment
Возможно, контекст вызывающего пользователя не имеет разрешения на использование API-вызова выборки всех ролей. Я бы сначала попробовал вызвать вызов enrollments без параметра запроса roleId и посмотреть, что вы получите: возможно, ваш список будет отфильтрован только по тем ролям, которые вы хотите. Возможно, вы сможете вывести правильный идентификатор роли для использования только для типа пользователя, к которому вы хотите в дальнейшем отфильтровать, основываясь на этом. - person Viktor Haag; 26.06.2012
comment
Я применил соответствующий идентификатор роли (и без идентификатора роли), и вот что я получил. { PagingInfo: { Bookmark: , HasMoreItems: false }, Items: [ ] } Я также изменил разрешения для своей роли. - person new_linux_user; 26.06.2012
comment
Скорее всего, вы включили разрешение роли «Просмотр регистраций пользователей» для вызывающего пользователя, но вам не хватает соответствующих разрешений «Поиск ‹rolename›», необходимых для просмотра зарегистрированных пользователей по ролям. . - person Viktor Haag; 26.06.2012
comment
Большое спасибо, что помогли мне. Я изменил настройку, и она работала идеально. - person new_linux_user; 27.06.2012