403 Текущий пользователь не может создавать курсы [запрещено] при создании курса для Google classroom api (.Net)

#google-classroom

Вопрос:

Я создал проект VisualStudio (C#), в котором используются API google classroom. С помощью суперадминистратора он может создать курс, но с делегированным администратором он возвращает ошибку. У меня есть делегированный администратор. Почему возвращается эта ошибка ?

Ошибки [ Сообщение[@UserCannotCreateCourse Текущий пользователь не может создавать курсы.] Местоположение[ — ] Причина[запрещено] Домен[глобальный] ]

мой код приведен ниже

 string[] Scopes = {ClassroomService.Scope.ClassroomCourses};

UserCredential credential;
using (var stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
{
    string credPath = "token.json";
    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        Scopes,
        "user",
        CancellationToken.None,
        new FileDataStore(credPath, true)).Resu<
    Console.WriteLine("Credential file saved to: "   credPath);
}

var service = new ClassroomService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = "Classroom test"
});

var body = new Course()
{
    Name = "MyFirstClass",
    OwnerId = "me"
};
var course = service.Courses.Create(body).Execute();
 

Файл «учетные данные.json»взят из моего проекта Google Cloud Platform.
Мой проект проверен.
./авторизация/класс/курсы
./авторизация/класс/списки
(и т.д.)

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

Комментарии:

1. Как вы выполнили делегирование всего домена? Можете ли вы дать нам больше информации об этом?

2. Я создал проект на облачной платформе Google и проверил свое приложение. Эта ошибка произошла, когда я изменил учетную запись Google (с Суперадминистратора на делегированного администратора) для аутентификации.

3. Вы обновили учетные данные в коде после выполнения делегирования всего домена? Что именно вы подразумеваете под «Эта ошибка произошла, когда я изменил учетную запись Google для аутентификации»? Где в коде вы выполняете аутентификацию для учетной записи службы?

4. если делегирование всего домена означает авторизацию с помощью консоли Google (элементы управления API безопасности), я это сделал. Эта ошибка произошла, когда я вошел в учетную запись Google workspace для образования. И сегодня я обнаружил, что api класса успешно создал курс с учетной записью Google workspace (не для обучения).

Ответ №1:

Я обнаружил, что владелец классного курса должен быть членом группы classroom_teachers. (Если учетная запись не является суперадминистратором)

С учетной записью, которая не является учителем, api класса получает ошибку. И после того, как я стал учителем (вручную вошел в систему и создал курс в классе), api класса преуспел.

Поэтому, прежде чем создавать курс, я присоединяюсь к этой учетной записи в группе classroom_teacher.

Спасибо.