Аккаунт ограничен Google Classroom API - PullRequest
1 голос
/ 30 марта 2020

Мой коллега и мой проект C# WPF, который управляет курсами в Google Classroom. Мы создаем проект на платформе Google API. Мы являемся владельцем проекта. Оба имеют идентификаторы клиента OAuth 2.0. (но это не имеет значения) Я разрешаю все возможности Classroom API.

Я администратор домена нашего Gsuite for Education. Google Classroom API разрешен в домене.

Он может войти в систему и использовать программу, ошибок нет, все функции в порядке. Я не могу, потому что я получил ошибку 400, invalid_request Аккаунт ограничен.

Я пытаюсь использовать API Explorer, и эта ошибка возникает только тогда, когда я хочу получить список тем курса Google по классной комнате.

Область применения: https://www.googleapis.com/auth/classroom.topics https://www.googleapis.com/auth/classroom.topics.readonly openid

        txtLog.Text += "Try login to Google...\n"; 
        UserCredential credential;

        using (var stream = new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
        {

            // The file token.json stores the user's access and refresh tokens, and is created
            // automatically when the authorization flow completes for the first time.
            string credPath = "token.json";
            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                new string[] 
                { 
                    ClassroomService.Scope.ClassroomCourses, 
                    ClassroomService.Scope.ClassroomRosters, 
                    ClassroomService.Scope.ClassroomProfileEmails, 
                    ClassroomService.Scope.ClassroomProfilePhotos,
                    ClassroomService.Scope.ClassroomTopics
                },
                "admin",
                CancellationToken.None,
                new FileDataStore(credPath, true)).Result;
            txtLog.Text += $"Credential file saved to: {credPath}\n";
        }

        // Create Classroom API service.
        service = new ClassroomService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = "Jedlik Classroom Manager",
        });

        // Define request parameters.
        CoursesResource.ListRequest request = service.Courses.List();
        request.PageSize = 100;

        // List courses.
        ListCoursesResponse response = request.Execute();
        if (response.Courses != null && response.Courses.Count > 0)
        {
            txtLog.Text +=$"Number of coureses: {response.Courses.Count}\n";
            lstCourses.ItemsSource = response.Courses.ToList();
            lstCourses.DisplayMemberPath = "Name";
            lstCourses.SelectedValuePath = "Id";
            lstCourses.SelectedIndex = 0;
        }
        else
        { 
            txtLog.Text += $"No courses found\n";
        }

Есть идеи?

1 Ответ

1 голос
/ 30 марта 2020

Ответ:

Это похоже на проблему с вашей учетной записью. Чтобы получить разрешение, вам следует обратиться в службу поддержки G Suite.

Дополнительная информация:

Если существует ограничение учетной записи для учетной записи, пытающейся аутентифицироваться, то это не то, что Stackoverflow Сообщество может помочь - особенно если тот же код работает для другого учителя в вашем домене и , на который вы получаете тот же ответ в функции Try this API на courses.topics страница для справки.

Вы можете связаться со службой поддержки G Suite, используя ссылки на на этой странице

Я знаю, что, как правило, это плохие новости, но я надеюсь, что это полезно для вас!

Ссылки:

...