Joe*_*ite 2 google-api google-apps-script google-classroom
我正在尝试使用Classroom API v1在Google Apps脚本中从Google课堂访问课程作业。我按照快速入门中的步骤成功获取了我的课程列表,但是当我尝试使用以下方法访问我的一个课程中的课程时:
var coursework = Classroom.Courses.CourseWork.list('valid courseId');
Run Code Online (Sandbox Code Playgroud)
我收到“呼叫者没有权限”错误。不过,我可以使用API资源管理器成功检索课程列表。
通过使用API Explorer,看起来该命令需要“ classroom.coursework.students.readonly”作用域。但是,当我在权限对话框中单击“允许”按钮时,该作用域不会添加到我的项目中。有没有一种方法可以将其添加到项目的范围列表中?我已经搜索过SO,并且看到过其他语言(例如python)中设置范围的提及,但是在Apps Script中却没有。我也看到有人提到手动授权范围在Apps脚本中,但没有说明如何执行此操作。
我已经碰壁了,所以如果有人有建议,我将非常感激。谢谢。
最初由我在此SO线程上解决。
此处适用于此任务的Classroom API参考。
看起来即使启用了高级Google服务...,您也只会添加以下OAuth范围-
您可以通过导航到“ 文件”>“项目属性”>“范围”来查看这些内容。
但是,当您从文档链接中的“ 凭据”>“ Google OAuth 2.0”标签下尝试API时,它将显示4个完全不同的OAuth范围;这些如下-
您需要在Apps脚本清单文件中手动添加所有这8种。为此,请导航至查看并检查显示清单文件。在那里,您需要添加此代码,也许要在依赖项下方添加-
"oauthScopes": [
"https://www.googleapis.com/auth/classroom.courses",
"https://www.googleapis.com/auth/classroom.coursework.me.readonly",
"https://www.googleapis.com/auth/classroom.profile.emails",
"https://www.googleapis.com/auth/classroom.profile.photos",
"https://www.googleapis.com/auth/classroom.rosters",
"https://www.googleapis.com/auth/classroom.coursework.me",
"https://www.googleapis.com/auth/classroom.coursework.me.readonly",
"https://www.googleapis.com/auth/classroom.coursework.students",
"https://www.googleapis.com/auth/classroom.coursework.students.readonly"
],
Run Code Online (Sandbox Code Playgroud)
注意1:仅添加较新的4并不能解决问题,因为脚本将仅假设这些,而不是最初运行脚本时自动填充的原始5。
注意2:空行只是为了区分自动生成的作用域与需要手动添加的作用域(冗余)。
我的appsscript.json文件看起来像这样;您的可能会有所不同-
{
"timeZone": "Asia/Kolkata",
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "Classroom",
"serviceId": "classroom",
"version": "v1"
}]
},
"oauthScopes": [
"https://www.googleapis.com/auth/classroom.courses",
"https://www.googleapis.com/auth/classroom.coursework.me.readonly",
"https://www.googleapis.com/auth/classroom.profile.emails",
"https://www.googleapis.com/auth/classroom.profile.photos",
"https://www.googleapis.com/auth/classroom.rosters",
"https://www.googleapis.com/auth/classroom.coursework.me",
"https://www.googleapis.com/auth/classroom.coursework.me.readonly",
"https://www.googleapis.com/auth/classroom.coursework.students",
"https://www.googleapis.com/auth/classroom.coursework.students.readonly"
],
"exceptionLogging": "STACKDRIVER"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
686 次 |
| 最近记录: |