Google Classroom API: список курсов, возвращающий недоступные классы - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь получить список классов, к которым у текущего пользователя есть доступ, и я получаю возвращенные классы, к которым у пользователя нет доступа.

С помощью клиента ruby я могу вызвать

service.list_courses(course_states: "ACTIVE")
# I have 7 courses returned

ИЛИ

service.list_courses(course_states: "ACTIVE", teacher_id: "me")
# I have 3 courses returned (just mine)

Проблема в том, что при первом вызове возвращаются 4 курса , которые текущий пользователь не может увидеть / получить доступ . Кажется, это не должно происходить , поскольку документы говорят Returns a list of courses that the requesting user is permitted to view, restricted to those that match the request.

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

Мой пример использования: я хочу создать элемент course work в курсе, но я хочу только сделать это для курсов, к которым учитель может получить доступ. Я думал, что list courses должен возвращать именно этот список, но, похоже, нет (если я не укажу teacher_id: "me", но потом я беспокоюсь, что пропущу курсы, над которыми сотрудничает учитель (если это даже возможно))

Это ошибка или я что-то неправильно понимаю?

Отредактировано, чтобы добавить

Спасибо @ziganotschka за детали API. После дальнейшего тестирования вызов service.list_courses(course_states: "ACTIVE", teacher_id: "me") вернет курсы, по которым запрашивающий пользователь создал курсы или , по которым запрашивающий пользователь сотрудничает. Для меня это было неочевидно, так как объект курса имеет поле owner_id для одного пользователя, поэтому я подумал, что teacher_id может ссылаться на это.

Проблема Я столкнулся с тем, что вошел в систему как super admin, что в соответствии с ответом ниже позволяет мне видеть все курсы . Однако я не смог получить доступ к веб-ссылке ни одного из этих курсов, что меня смущало.

1 Ответ

0 голосов
/ 24 апреля 2020

API работает следующим образом:

  • service.list_courses(course_states: "ACTIVE") возвращает за всех, на кого он / она участвует, будь то преподаватель или студент.
  • Если администратор вызывает service.list_courses(course_states: "ACTIVE"), он может видеть все классы домена - это предполагаемое поведение.
  • service.list_courses (course_states: "ACTIVE", teacher_id: "me") вернет только принадлежащие классы me.
...