{"id":5,"date":"2022-03-01T09:00:00","date_gmt":"2022-03-01T09:00:00","guid":{"rendered":"https:\/\/gfejp-demo.com\/?p=5"},"modified":"2022-07-14T07:50:19","modified_gmt":"2022-07-14T07:50:19","slug":"classroom-api%ef%bf%bc","status":"publish","type":"post","link":"https:\/\/apidemo.ddrive.cloud\/?p=5","title":{"rendered":"Classroom API"},"content":{"rendered":"\n<p>\u3053\u306e\u30b5\u30f3\u30d7\u30eb\u3067\u306f\u3001Google Classroom \u3067\u306e\u30af\u30e9\u30b9\u306e\u4f5c\u6210\u3001\u7de8\u96c6\u306b\u3064\u3044\u3066\u306e Google Apps Script \u306e\u30b3\u30fc\u30c9\u3092\u8a18\u8f09\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u3053\u3067\u6271\u3046\u30b5\u30f3\u30d7\u30eb \u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f \u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/ddrivedemo\/Admin-ClassroomAPI-Demo\" target=\"_blank\">\u3053\u3061\u3089\uff08github.com\uff09<\/a>\u00a0\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u306e\u30ea\u30f3\u30af\u304b\u3089 Google Classroom \u3092\u64cd\u4f5c\u3059\u308b\u30b5\u30f3\u30d7\u30eb \u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u304c\u30b3\u30d4\u30fc\u53ef\u80fd\u3067\u3059\u3002\u307e\u305a\u306f Classroom \u306e\u8a2d\u5b9a\u3092\u884c\u3063\u3066\u3044\u308b Google \u30a2\u30ab\u30a6\u30f3\u30c8 \u3092\u9078\u629e\u3057\u3001\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3092\u30b3\u30d4\u30fc\u3057\u3066\u304a\u4f7f\u3044\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<a href=\"https:\/\/accounts.google.com\/AccountChooser?service=lso&amp;continue=https:\/\/docs.google.com\/spreadsheets\/d\/1w85CFjlHGQndWp74FNdeD8mv9t4ID6fQh305w01utH8\/copy\" target=\"_new\" rel=\"noopener\" class=\"demo-button\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/gfejp-demo.com\/wp-content\/uploads\/2022\/04\/google-sheets.png\" alt=\"\" class=\"wp-image-387\" width=\"45\" height=\"45\" srcset=\"https:\/\/apidemo.ddrive.cloud\/wp-content\/uploads\/2022\/04\/google-sheets.png 480w, https:\/\/apidemo.ddrive.cloud\/wp-content\/uploads\/2022\/04\/google-sheets-300x300.png 300w, https:\/\/apidemo.ddrive.cloud\/wp-content\/uploads\/2022\/04\/google-sheets-150x150.png 150w\" sizes=\"auto, (max-width: 45px) 100vw, 45px\" \/> Google Classroom \u306e\u64cd\u4f5c\u30b5\u30f3\u30d7\u30eb<\/a> \u203b\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u3092\u30b3\u30d4\u30fc\u3059\u308bGoogle \u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u5fc5\u8981\u3067\u3059<br>\n\n\n\n<a href=\"https:\/\/accounts.google.com\/AccountChooser?service=lso&amp;continue=https:\/\/classroom.google.com\" target=\"_new\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/apidemo.ddrive.cloud\/wp-content\/uploads\/2022\/04\/icons8-google-\u6559\u5ba4-48.png\" alt=\"\" class=\"wp-image-383\" width=\"48\" height=\"48\">\u30b3\u30fc\u30b9(\u30af\u30e9\u30b9)\u3092 Google Classroom \u3067\u78ba\u8a8d\u3059\u308b<\/a><br>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Google Classroom \u306e\u64cd\u4f5c<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">\u30b3\u30fc\u30b9(\u30af\u30e9\u30b9)\u4e00\u89a7\u306e\u53d6\u5f97<\/h5>\n\n\n\n<p>\u767b\u9332\u6e08\u307f\u306e\u30b3\u30fc\u30b9(\u30af\u30e9\u30b9)\u306e\u4e00\u89a7\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\/**\n* \u30b3\u30fc\u30b9\u4e00\u89a7\u306e\u53d6\u5f97\n*\/\nfunction getCourseList() {\n\n  \/\/ \u30b7\u30fc\u30c8\u540d\u3092\u6307\u5b9a\u3057\u3066\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8 \u3092\u53d6\u5f97\n  let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();\n  let sheet = spreadsheet.getSheetByName(&#39;Classroom Info&#39;);\n\n  \/\/ \u30b7\u30fc\u30c8\u5185\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u30af\u30ea\u30a2\n  sheet.getDataRange().clear();\n\n  \/\/ 1\u884c\u76ee - \u30d8\u30c3\u30c0\u30fc\u51fa\u529b\n  let line = [\n    &#39;role&#39;,\n    &#39;id&#39;,\n    &#39;name&#39;,\n    &#39;section&#39;,\n    &#39;description&#39;,\n    &#39;room&#39;,\n    &#39;ownerId&#39;,\n  ];\n  let range = sheet.getRange(2, 1, 1, line.length);\n  range.setValues([line]);\n\n  \/\/ \u6559\u5e2b\u30fb\u5b66\u7fd2\u8005\u305d\u308c\u305e\u308c\u53d6\u5f97\n  const roles = [&#39;teacher&#39;, &#39;student&#39;];\n  for (let roleIndex=0; roleIndex&lt;roles.length; roleIndex++) {\n    let param = {};\n    \/\/ \u81ea\u5206\u304c\u62c5\u5f53\u30fb\u6240\u5c5e\u3059\u308b\u30b3\u30fc\u30b9\u3092\u6307\u5b9a\n    param[`${roles[roleIndex]}Id`] = &#39;me&#39;;\n\n    \/\/ \u30b3\u30fc\u30b9\u4e00\u89a7\u3092\u53d6\u5f97\n    let response = Classroom.Courses.list(param);\n\n    if (response) {\n\n      \/\/ \u30ec\u30b9\u30dd\u30f3\u30b9\u304b\u3089\u30b3\u30fc\u30b9\u4e00\u89a7\u3092\u53d6\u5f97\n      let courses = response.courses;\n\n      if (courses) {\n\n        for (let courseIndex=0; courseIndex&lt;courses.length; courseIndex++) {\n          \/\/ \u7d50\u679c\u3092\u30b7\u30fc\u30c8\u306b\u51fa\u529b\n          line = [\n            roles[roleIndex],\n            courses[courseIndex].id, \/\/ \u30b3\u30fc\u30b9ID\n            courses[courseIndex].name, \/\/ \u30b3\u30fc\u30b9\u540d\n            courses[courseIndex].section, \/\/ \u30bb\u30af\u30b7\u30e7\u30f3\n            courses[courseIndex].description, \/\/ \u8aac\u660e\n            courses[courseIndex].room, \/\/ \u6559\u5ba4\n            courses[courseIndex].ownerId, \/\/ \u62c5\u5f53\u6559\u5e2b\uff08\u30aa\u30fc\u30ca\u30fc\uff09\n          ];\n          range = sheet.getRange(3+courseIndex, 1, 1, line.length);\n          range.setValues([line]);\n        }\n      }\n    }\n  }\n}<\/code><\/pre><\/div>\n\n\n\n<p>\u767b\u9332\u6e08\u307f\u306e\u30b3\u30fc\u30b9(\u30af\u30e9\u30b9)\u306e\u4e00\u89a7\u3092\u53d6\u5f97\u3057\u3001\u7d50\u679c\u3092\u30b9\u30d7\u30ec\u30c3\u30c9\u30b7\u30fc\u30c8\u306b\u51fa\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">\u30af\u30e9\u30b9\u306e\u4f5c\u6210<\/h5>\n\n\n\n<p>\u65b0\u3057\u3044\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\/**\n* \u30b3\u30fc\u30b9\u306e\u4f5c\u6210\n*\/\nfunction createCourse() {\n\n  \/\/ \u4f5c\u6210\u3059\u308b\u30b3\u30fc\u30b9\n  let newCourse = {\n    &#39;name&#39;: &#39;New Class 1&#39;, \/\/ \u30b3\u30fc\u30b9\u540d\n    &#39;section&#39;: &#39;section I&#39;, \/\/ \u30bb\u30af\u30b7\u30e7\u30f3\n    &#39;description&#39;: &#39;This is a new course.&#39;, \/\/ \u8aac\u660e\n    &#39;room&#39;: &#39;Room A&#39;, \/\/ \u6559\u5ba4\n    &#39;ownerId&#39;: &#39;me&#39; \/\/ \u62c5\u5f53\u6559\u5e2b\uff08\u30aa\u30fc\u30ca\u30fc\uff09\n  };\n\n  \/\/ \u30b3\u30fc\u30b9\u3092\u4f5c\u6210\n  let createdCourse = Classroom.Courses.create (newCourse);\n\n  \/\/ \u30b3\u30fc\u30b9\u306eID\u3092\u8fd4\u5374\n  return createdCourse.id;\n}<\/code><\/pre><\/div>\n\n\n\n<p>\u30af\u30e9\u30b9\u306e\u540d\u524d\u3001\u30bb\u30af\u30b7\u30e7\u30f3\u3092\u6307\u5b9a\u3057\u3066\u3001\u30af\u30e9\u30b9\u306e\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h5 class=\"wp-block-heading\">\u30b3\u30fc\u30b9(\u30af\u30e9\u30b9)\u3092\u7de8\u96c6\u3059\u308b<\/h5>\n\n\n\n<p>\u767b\u9332\u6e08\u307f\u306e\u30b3\u30fc\u30b9(\u30af\u30e9\u30b9)\u306e\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\/*\n* \u30b3\u30fc\u30b9\u60c5\u5831\u306e\u66f4\u65b0\n*\/\nfunction updateCourseInfo(newCourseId) {\n\n  \/\/ \u30b3\u30fc\u30b9\u306e\u60c5\u5831\n  let updateCourse = {\n    &#39;name&#39;: &#39;New Class 2&#39;, \/\/ \u30b3\u30fc\u30b9\u540d\n    &#39;section&#39;: &#39;section II&#39;, \/\/ \u30bb\u30af\u30b7\u30e7\u30f3\n    &#39;room&#39;: &#39;Room B&#39;, \/\/ \u6559\u5ba4\n  };\n\n  \/\/ \u30b3\u30fc\u30b9\u306e\u60c5\u5831\u3092\u66f4\u65b0\n  let updatedCourse = Classroom.Courses.update(updateCourse, newCourseId);\n}<\/code><\/pre><\/div>\n\n\n\n<p>\u540d\u524d\u3001\u30bb\u30af\u30b7\u30e7\u30f3\u3001\u6559\u5ba4\u3092\u5909\u66f4\u3057\u3066\u3001\u30b3\u30fc\u30b9(\u30af\u30e9\u30b9)\u306e\u60c5\u5831\u3092\u66f4\u65b0\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div style=\"height:128px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">\u8ab2\u984c\u306e\u7ba1\u7406<\/h4>\n\n\n\n<h5 class=\"wp-block-heading\">\u8ab2\u984c\u306e\u4f5c\u6210<\/h5>\n\n\n\n<p>\u6307\u5b9a\u3057\u305f\u30b3\u30fc\u30b9(\u30af\u30e9\u30b9)\u306b\u8ab2\u984c\u3092\u767b\u9332\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>\/**\n* \u30b3\u30fc\u30b9\u306b\u8ab2\u984c\u3092\u767b\u9332\n*\/\nfunction createCourseWork(newCourseId) {\n\n  \/\/ \u8ab2\u984c\u306e\u60c5\u5831\n  let newCourseWork = {\n    &#39;title&#39;: &#39;New CourseWork 1&#39;, \/\/ \u30bf\u30a4\u30c8\u30eb\n    &#39;description&#39;: &#39;This is a new coursework.&#39;, \/\/ \u8aac\u660e\n    &#39;maxPoints&#39;: 100, \/\/ \u5f97\u70b9\n    &#39;workType&#39;: &#39;ASSIGNMENT&#39;, \/\/ \u30bf\u30a4\u30d7\n    &#39;state&#39;: &#39;PUBLISHED&#39;, \/\/ \u516c\u958b\n  };\n\n  \/\/\u8ab2\u984c\u3092\u4f5c\u6210\n  let createdCourseWork = Classroom.Courses.CourseWork.create(newCourseWork, newCourseId);\n\n  \/\/ \u8ab2\u984c\u306eID\u3092\u8fd4\u5374\n  return createdCourseWork.id;\n}<\/code><\/pre><\/div>\n\n\n\n<p>\u8ab2\u984c\u306e\u5185\u5bb9\u3092\u6307\u5b9a\u3057\u3001\u8ab2\u984c\u3092\u767b\u9332\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3053\u306e\u30b5\u30f3\u30d7\u30eb\u3067\u306f\u3001Google Classroom \u3067\u306e\u30af\u30e9\u30b9\u306e\u4f5c\u6210\u3001\u7de8\u96c6\u306b\u3064\u3044\u3066\u306e Google Apps Script \u306e\u30b3\u30fc\u30c9\u3092\u8a18\u8f09\u3057\u3066\u3044\u307e\u3059\u3002\u3053\u3053\u3067\u6271\u3046\u30b5\u30f3\u30d7\u30eb \u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306f \u00a0\u3053\u3061\u3089\uff08github.com\uff09\u00a0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-5","post","type-post","status-publish","format-standard","hentry","category-administrator"],"_links":{"self":[{"href":"https:\/\/apidemo.ddrive.cloud\/index.php?rest_route=\/wp\/v2\/posts\/5","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/apidemo.ddrive.cloud\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/apidemo.ddrive.cloud\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/apidemo.ddrive.cloud\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/apidemo.ddrive.cloud\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5"}],"version-history":[{"count":66,"href":"https:\/\/apidemo.ddrive.cloud\/index.php?rest_route=\/wp\/v2\/posts\/5\/revisions"}],"predecessor-version":[{"id":657,"href":"https:\/\/apidemo.ddrive.cloud\/index.php?rest_route=\/wp\/v2\/posts\/5\/revisions\/657"}],"wp:attachment":[{"href":"https:\/\/apidemo.ddrive.cloud\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/apidemo.ddrive.cloud\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/apidemo.ddrive.cloud\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}