0

У меня есть тестовая учетная запись для Google Classroom (т. Е. Для нее отключены все службы, кроме Classroom). Следуя примеру https://developers.google.com/classroom/quickstart/ruby (с небольшими изменениями), я могу войти в систему и получить данные, например. о студенческих курсах.Google Classroom, Ruby, Rails: @NotGoogleAppsUser с тестовой учетной записью

Однако то, что я хочу сделать, это использовать его в приложении Rails. Я использую omniauth-google-oauth2 и google-api-ruby-client (новая ветка 0.9.x). Выбрав токен для этой тестовой учетной записи Google (я трижды проверил, что это этот аккаунт, а не какой-либо другой профиль, который я использую) Я пытаюсь получить доступ к данным от Google::Apis::ClassroomV1::ClassroomService, но он продолжает говорить мне:

Sending HTTP get https://classroom.googleapis.com/v1/courses?pageSize=10 
403 
#<Hurley::Response GET https://classroom.googleapis.com/v1/courses?pageSize=10 == 403 (319 bytes) 748ms> 
Caught error forbidden: @NotGoogleAppsUser The user is not a Google Apps user. 
Error - #<Google::Apis::ClientError: forbidden: @NotGoogleAppsUser The user is not a Google Apps user.> 

Google::Apis::ClientError: forbidden: @NotGoogleAppsUser The user is not a Google Apps user.

код я использую:

 
require 'google/apis/classroom_v1' 

module GoogleIntegration::Client 
    Classroom = Google::Apis::ClassroomV1 

    def self.create(token) 
    service = Classroom::ClassroomService.new 
    scopes = ['https://www.googleapis.com/auth/classroom.courses.readonly', 'profile', 'email'] 
    service.authorization = Google::Auth.get_application_default(scopes) 
    service.authorization.access_token = token 
    service.client_options.application_name = 'Membean Classroom Sample' 
    service 
    end 

и в контроллере:

 
service = GoogleIntegration::Client.create(request.env['omniauth.auth'].credentials.token) 
response = service.list_courses(page_size: 10) 

ответ

0

Согласно классе а PI Access Errors:

NotGoogleAppsUser указывает на то, что запрашивающий пользователь не принадлежит к домену Google Apps.

Возможное действие:: запрашивать у пользователя повторную аутентификацию с помощью учетной записи Google Apps for Education. Укажите ссылку на использование multiple accounts, чтобы пользователь мог выбрать правильную учетную запись.

+0

Нет, пользователь, как я уже сказал, является тестовой учетной записью (в домене classroom-dev.com) от Google, которая является действительной аудиторией в классе, поскольку мне удалось получить доступ к ее данным, используя код из https : //developers.google.com/classroom/quickstart/ruby. Просто, что Rails Gem, похоже, не в состоянии работать с ним. –

Смежные вопросы