我从谷歌获得了一个Classroom的测试帐户(也就是说,除了Classroom之外的所有服务都被禁用)。遵循中的示例https://developers.google.com/classroom/quickstart/ruby(稍作修改),我可以登录并获取详细信息,例如关于学生课程的信息。
然而,我想做的是在Rails应用程序中使用它。我正在使用omniauth-google-oauth2
和google-api-ruby-client
(新的0.9.x分支)。从谷歌获取该测试帐户的令牌后(我已经三次检查了它是该帐户,而不是我使用的任何其他配置文件),我正试图访问Google::Apis::ClassroomV1::ClassroomService
的数据,但它一直告诉我:
发送HTTP gethttps://classroom.googleapis.com/v1/courses?pageSize=10403#<Hurley::响应GEThttps://classroom.googleapis.com/v1/courses?pageSize=10==403(319字节)748ms>捕获的错误被禁止:@NotGoogleAppsUser该用户不是谷歌应用程序用户。错误-#<Google::Apis::ClientError:被禁止:@NotGoogleAppsUser该用户不是谷歌应用程序用户>Google::Apis::ClientError:被禁止:@NotGoogleAppsUser该用户不是谷歌应用程序用户
我使用的代码是:
需要"google/apis/classroom_v1"模块GoogleIntegration::客户端Classroom=Google::Apis::ClassroomV1def self.create(令牌)service=教室::ClassroomService.newscopes=[]https://www.googleapis.com/auth/classroom.courses.readonly','配置文件','电子邮件']service.authorification=Google::Auth.get_application_default(scopes)service.authorization.access_token=令牌service.client_options.application_name='记忆豆课堂示例'服务终止
在控制器中:
service=GoogleIntegration::Client.create(request.env['omniauth.auth'].credentials.token)response=service.list_courses(页面大小:10)
根据课堂API访问错误:
NotGoogleAppsUser 表示请求用户不属于转到谷歌应用程序域。
可能的操作:提示用户使用"Google教育应用程序"帐户。提供使用多个因此用户可以选择正确的帐户。