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