#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.
Спасибо.