当前位置: 首页 > 知识库问答 >
问题:

谷歌课堂api创建使用js的课程

丰景同
2023-03-14

我是谷歌教室api新手,我想在本地机器上创建一门课程。我能不能做?如果创建,那么如何使用javascript?在我尝试时,代码出错=

在我的代码中,我使用函数create课程()来创建一个新的课程。

我的代码如下所示

<!DOCTYPE html>
<html>
  <body>
    <!--Add buttons to initiate auth sequence and sign out-->
    <button id="authorize-button" style="display: none;">Authorize</button>
    <button id="signout-button" style="display: none;">Sign Out</button>

    <pre id="content"></pre>

    <script type="text/javascript">
      // Client ID and API key from the Developer Console
      var CLIENT_ID = '782126680600-9kkg23inbnn9sv8ficcvjci2rgrnd648.apps.googleusercontent.com';

      // Array of API discovery doc URLs for APIs used by the quickstart
      var DISCOVERY_DOCS = ["https://www.googleapis.com/discovery/v1/apis/classroom/v1/rest"];

      // Authorization scopes required by the API; multiple scopes can be
      // included, separated by spaces.
      var SCOPES = "https://www.googleapis.com/auth/classroom.courses.readonly";

      var authorizeButton = document.getElementById('authorize-button');
      var signoutButton = document.getElementById('signout-button');

      /**
       *  On load, called to load the auth2 library and API client library.
       */
      function handleClientLoad() {
        gapi.load('client:auth2', initClient);
      }

      /**
       *  Initializes the API client library and sets up sign-in state
       *  listeners.
       */
      function initClient() {
        gapi.client.init({
          discoveryDocs: DISCOVERY_DOCS,
          clientId: CLIENT_ID,
          scope: SCOPES
        }).then(function () {
          // Listen for sign-in state changes.
          gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);

          // Handle the initial sign-in state.
          updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
          authorizeButton.onclick = handleAuthClick;
          signoutButton.onclick = handleSignoutClick;
        });
      }

      /**
       *  Called when the signed in status changes, to update the UI
       *  appropriately. After a sign-in, the API is called.
       */
      function updateSigninStatus(isSignedIn) {
        if (isSignedIn) {
          authorizeButton.style.display = 'none';
          signoutButton.style.display = 'block';
          createCourse();
          listCourses();
        } else {
          authorizeButton.style.display = 'block';
          signoutButton.style.display = 'none';
        }
      }

      /**
       *  Sign in the user upon button click.
       */
      function handleAuthClick(event) {
        gapi.auth2.getAuthInstance().signIn();
      }

      /**
       *  Sign out the user upon button click.
       */
      function handleSignoutClick(event) {
        gapi.auth2.getAuthInstance().signOut();
      }

      /**
       * Append a pre element to the body containing the given message
       * as its text node. Used to display the results of the API call.
       *
       * @param {string} message Text to be placed in pre element.
       */
      function appendPre(message) {
        var pre = document.getElementById('content');
        var textContent = document.createTextNode(message + '\n');
        pre.appendChild(textContent);
      }

      /**
       * Print the names of the first 10 courses the user has access to. If
       * no courses are found an appropriate message is printed.
       */
      function listCourses() {
        gapi.client.classroom.courses.list({
          pageSize: 10
        }).then(function(response) {
            console.info(response.result);
          var courses = response.result.courses;
          appendPre('Courses:');
          if (courses.length > 0) {
            for (i = 0; i < courses.length; i++) {
              var course = courses[i];
              appendPre(course.name)
            }
          } else {
            appendPre('No courses found.');
          }
        });
      }
        function createCourse(){
            var newCourse = {'name': '9th Math','ownerId' : 'me','courseState' : 'PROVISIONED'};
            gapi.client.classroom.courses.create(newCourse).then(function(response) {
                console.info(response);
            });
        }

    </script>

    <script async defer src="https://apis.google.com/js/api.js"
      onload="this.onload=function(){};handleClientLoad()"
      onreadystatechange="if (this.readyState === 'complete') this.onload()">
    </script>
  </body>
</html>

请回复我。。。。。。。。。。

共有1个答案

计燕七
2023-03-14

您必须从https://www.googleapis.com/auth/classroom.courses.readonlyhttps://www.googleapis.com/auth/classroom.courses

根据文档,courses.create需要以下OAuth范围:https://www.googleapis.com/auth/classroom.courses开始工作。

范围https://www.googleapis.com/auth/classroom.courses.readonly用于列出和获取数据。如果需要创建更新,则必须使用https://www.googleapis.com/auth/classroom.courses以获得API的完全访问权限。

希望这有帮助。

 类似资料:
  • 日期:2020/12/17 创盛视联数码科技(北京)有限公司 1. 创建课堂 点击创建课堂,填写课堂相关信息、选择房间类型,保存即可,如下图所示: 1.1. 基本信息 课堂名称 需100个字符以内(1个汉字、数字、标点都算1个字符)。 课堂布局模式 决定课堂页面的默认布局。主要分为文档模式与大屏模式。 课堂连麦模式 学生进入房间后自动连麦。 合流布局模式 设置旁听者以及回放观看时的视频合屏布局,有

  • 在中国大学 MOOC 平台已开设线上课程(MOOC、SPOC、在线开放课程)的课程团队老师,可基于自己的线上课程创建并使用关联慕课堂(助教无法使用慕课堂),通过电脑端【课程管理后台】,进入自己当前学期的mooc或spoc课程: 点击课程左侧导航的【慕课堂管理】进入慕课堂管理界面: 点击【+创建课堂】,输入课堂名称、上课时间等,点击【保存】,课堂创建成功,并且系统会分配六位字符的课堂码,学生可以在A

  • 学校老师可以在中国大学 MOOC平台,基于本校的MOOC或学校引进的外校MOOC创建并使用关联慕课堂。提示:老师如需利用外校MOOC开展慕课堂教学,要先由学校教务处联系各区域运营人员开通引用课程服务。 老师进入中国大学 MOOC平台(www.icourse163.org),登录账号,点击右上角头像的【课程管理后台】: 点击左侧导航的【慕课堂管理】,点击【新建慕课堂】: 选择【与线上关联的课堂】创建

  • 问题:我们有超过8000个课程要创建,并且希望使用批处理系统,或者至少异步地创建它们。我们通过别名在create调用中传递我们的内部唯一课程ID。但是,在回调方法中,该值不会传递回来。这意味着我们无法将google的唯一ID链接到我们的ID上,也无法知道是否出现了问题,哪些课程不是创建的。 示例:我想用以下ID创建5个课程:1234 1235 1236 1237 1238 所以我创建了一个批处理请

  • 当在Google Claston API中执行方法时,当我尝试将附件添加到学生提交的文件中时,返回403错误。 该调用是从一个经过身份验证的学生帐户发出的,并被添加为链接资源。Developer Console项目确实启用了Google Classwork API,并且对Google Classwork API的其他调用也运行良好,例如和。我错过了什么?当使用Try it!Google课堂文档站点