Разрешения, связанное с вызовами API должен отражать разрешения, которые вы должны были бы иметь, если бы вы были выполнять соответствующие функции через веб-интерфейс Учебной Envrionment в. Вы можете думать об этой проблеме двумя способами:
Скадрируйте вопрос с точки зрения роли пользователя: определить класс пользователей, вы бы зарезервировать эту возможность для вашей существующей конфигурации и убедитесь, что пользователь эта роль может сделать вызов через API, как вы ожидали.
Задайте вопрос в терминах абстрактного одиночного пользователя: начните с роли, которая не имеет привилегий и добавляет разрешения до тех пор, пока вы не получите только те, которые необходимы для вызова API. Это не тривиальное упражнение, и первый способ намного полезнее в долгосрочной перспективе.
В данном конкретном случае, поскольку API требует, чтобы вы предоставить полный курс предлагая набор свойств, когда вы хотите обновить его, вы должны иметь разрешение изменять все свойства в наборе (под Manage Courses
инструмент). Вы также должны уметь посмотреть информацию о курсе, в первую очередь, вам нужно иметь Course Management Console > See Course Info
.
Возможно, вы можете безопасно просмотреть массив разрешений в инструментах Manage Courses
и Course Management Console
для ролей пользователей, которые будут делать это в веб-интерфейсе, и убедитесь, что пользователи, использующие ваше приложение, также имеют аналогичный массив разрешений в этих инструментах.
Спасибо за это, в конце концов выяснилось, что моя проблема была в моем (java) коде, где я пытался выполнить PUT, используя HTTP POST, не уверен, почему это привело к проблеме авторизации - я подозреваю, потому что токен не был где это должно быть. Я также нашел два специальных разрешения для предложений (моей цели) для обновления. –
Обратите внимание, что токены аутентификации для сигнатуры пользователя и сигнатуры приложения в запросах API основаны на использовании (частично) метода HTTP в базовой строке для подписи. Таким образом, если вы вызываете маршрут, который должен быть POST-маршрутом, и вы делаете это с помощью PUT, это, скорее всего, будет отправлено обратно как 403 для недействительных токенов в зависимости от того, как вы подписываете маршрут и как вы отправляете его в службу. –