Tạo nhiều lớp học cùng lúc (Multiple Lesson)

Mục lục

Lưu ý: Hiện tại độ phân giải HD và Full HD chỉ hỗ trợ cho lớp 1v1 hoặc 1v6. Kể từ ngày 01/11/2024, ClassIn sẽ giới hạn lại số lớp (Lessons) được tạo trong một khóa (Course) lại theo mặc định là 2000 lớp/khóa (lessons/course) khi thao tác qua API.

Sau khi mã định danh được truyền, hệ thống sẽ xác minh xem mã định danh này có tồn tại trong tất cả các lớp đã tạo của hệ thống hay không. Nếu có, trả về ID của lớp đã được tạo thành công trước đó. Nếu không, thực hiện bình thường.

Tạo hàng loạt lớp học (tạo nhiều buổi cùng lúc), cần các tham số SID, safekey, timeStamp, ID lớp, tên lớp, thời gian lớp, tài khoản giáo viên, tên giáo viên, ID thư mục đám mây, số lượng học sinh tham gia, ghi hình lớp, phát trực tiếp, phát lại, mã định danh, giới thiệu lớp, UID giáo viên, UID giáo viên phụ, v.v.  Sau khi tạo thành công, hệ thống sẽ trả về ID lớp đã tạo, tên lớp, mã lỗi khi tạo lớp và mô tả lỗi.

Ghi chú:

 

  • Nếu lớp học được cài đặt ghi hình (không cài đặt phát trực tiếp), trường more_data sẽ trả về link phát lại video ghi hình lớp học, còn link livestream sẽ trống.
  • Nếu lớp học được cài đặt ghi hình và phát trực tiếp, ba địa chỉ pull flow video (RTMP, HLS và FLV) sẽ được liên kết với lớp học, và trường more_data sẽ trả về link phát lại và link livestream của lớp học (ba địa chỉ này vẫn tồn tại và liên kết với lớp học bất kể việc phát sóng trực tiếp của lớp học có bị hủy hay không).
  • Khi lớp học không được ghi hình, link phát lại và link livestream trong more_data sẽ trống.
  • Để bật chức năng phát trực tiếp, vui lòng bật chức năng ghi hình trước, nếu không, việc phát trực tiếp sẽ không khả dụng.
 RTMPHLSFLV(HTTP-FLV)
The full nameReal Time Message ProtocolHTTP Liveing StreamingRTMP over HTTP
agreementLong TCP connectionShort HTTP connectionLong HTTP connection
The principle ofData at each moment is forwarded as soon as it is receivedCollect data for a period of time, generate ts slice files (three slices), and update the m3u8 indexWith RTMP, using HTTP protocol (port 80)
Time delay1-3s5-20s(depending on the slice)1-3s
Web supportPlug-ins are required in H5Support the H5Plug-ins are required in H5
otherCross-platform support is poor, need Flash technical supportPlayback needs multiple requests, high quality requirements for the networkNeed Flash technical support, do not support multi-audio stream, multi-video stream, not easy to seek (i.e. drag progress bar)

Tại trang phát sóng trực tiếp của lớp học được tạo, chúng tôi tích hợp tính năng khung chat trực tuyến. Ngoài ra, để giúp cho nhà trường thuận tiện hơn trong việc thu thập thông tin, khung chat cho phép thiết lập yêu cầu người dùng đăng nhập trước khi gửi tin nhắn. Chức năng yêu cầu đăng nhập này vẫn có thể được thiết lập để học sinh có thể vào mà không cần đăng nhập lại theo hướng dẫn sau đây:

livechat

Thiết lập miễn đăng nhập cho khung chat tại trang Livestream

  • Sau khi bạn có link phát trực tiếp
    • Ví dụ:https://www.eeo.cn/live.php?lessonKey=1ca102d29e61175f
    • Bạn cần thêm account、nickname、checkCode vào cuối đường link https://live.eeo.cn/live_partner.html?lessonKey=00d1c98a91c52568
    • Lưu ý: link miễn đăng nhập này khác với link phát trực tiếp
  • Các tham số cụ thể và quy tắc như sau
    • Các tham số secret, lessonKey, account, nickname, checkCode
    • secret là dãy SECRET xem tại Trang quản lý classin.com trong mục API
    • lessonKey lấy từ link phát trực tiếp
    • account là tài khoản của học sinh,nickname là biệt danh của học sinh
    • checkCode = md5(secret+lessonKey+account+nickname)
  • Link mẫu
    • https://live.eeo.cn/live_partner.html?
    • lessonKey=00d1c98a91c52568&account=13700000000&nickname=classin&checkCode=d8c57caf088529b4ddd15b0f694d847b

Note: currently, only 1v1 or 1v6 hd and full hd are supported, so the number of people who choose hd can only choose 1 or 6. From 11/01/2024, ClassIn will limit the number of classes (Lessons) created in a course (Course) to 2000 classes/course (lessons/course) by default when operating via API.

Create class sessions (multiple), batch create class sessions, need ‘SID, safekey, timeStamp, class ID, class name, class time, teacher account, teacher name, cloud disk directory ID, number of student attendance, class recording, live broadcast, playback, unique identification, class introduction, teacher UID, co-teacher UID’, etc.Returns the class ID created, the class name, the error code for creating the class, and the error description. Users can pass custom fields, and the interface returns the parameters as-is. No pass, no return.After the unique identity is passed in by the mechanism, the interface verifies whether there is such a unique identity in all created classes under the mechanism, and if so, returns the class ID that was successfully created before.If not, execute normally.

Note:

  • if class recording is set for class (live streaming is not set), more_data returns the address of the live streaming player for class, and the pull stream address is empty;
  • If a class is set to record and broadcast, three pull stream addresses (RTMP, HLS and FLV) will be bound to the class, and more_data will return the live player address and pull stream address of the class (these three addresses will still exist and be bound to the class regardless of whether the live broadcast of the class is cancelled or not).
  • When the session is not recorded, the session live player address and pull stream address in more_data are empty.
  • To enable the recording of the on-the-spot scene, please turn on the record function first, otherwise, the recording of the on-the-spot scene is not available.

The following comparison is for reference only.

 RTMPHLSFLV(HTTP-FLV)
The full nameReal Time Message ProtocolHTTP Liveing StreamingRTMP over HTTP
agreementLong TCP connectionShort HTTP connectionLong HTTP connection
The principle ofData at each moment is forwarded as soon as it is receivedCollect data for a period of time, generate ts slice files (three slices), and update the m3u8 indexWith RTMP, using HTTP protocol (port 80)
Time delay1-3s5-20s(depending on the slice)1-3s
Web supportPlug-ins are required in H5Support the H5Plug-ins are required in H5
otherCross-platform support is poor, need Flash technical supportPlayback needs multiple requests, high quality requirements for the networkNeed Flash technical support, do not support multi-audio stream, multi-video stream, not easy to seek (i.e. drag progress bar)

In the live player page of the returned lesson, we implanted the chat room function.In order to facilitate you to collect the information of potential customers, all users need to fill in their mobile phone Numbers before they can chat, as shown in the figure below.Of course, in order to make it more convenient for you to use this function, we provide all students in your institution without logging in, please refer to the following

课节直播登录

The chat room in the live player is exempted from secondary login #

  • After you get the player link through this interface
    • Example:https://www.eeo.cn/live.php?lessonKey=1ca102d29e61175f
    • you need account、nickname、checkCode Joining together in https://live.eeo.cn/live_partner.html?lessonKey=00d1c98a91c52568 After the address. Note: this free secondary login address is not the same address as the live player address
  • The specific parameters and rules are as follows
    • Specific parameters are secret, lessonKey, account, nickname, checkCode
    • secret is SECRET,Available at the eeo.cn API for docking keysl
    • lessonKey can be obtained from the broadcast address
    • account is student account,nickname is student nickname
    • checkCode = md5(secret+lessonKey+account+nickname)
  • URL Stitching sample
    • https://live.eeo.cn/live_partner.html?lessonKey=00d1c98a91c52568&account=13700000000&nickname=classin&checkCode=d8c57caf088529b4ddd15b0f694d847b

URL

https://api.eeo.cn/partner/api/course.api.php?action=addCourseClassMultiple

HTTP Request Methods #

  • POST

Coding format #

  • UTF-8

Request data #

keyBắt buộcYêu cầu thêmMô tảHướng dẫn
SIDBắt buộcID của trườngXem dữ liệu này tại Trang quản lý classin.com trong mục API
safeKeyBắt buộcFixed 32-bit all lowercase charactersKhóa bảo mật xác thực trường họcsafeKey=MD5(SECRET+timeStamp)
timeStampBắt buộcTheo Unix Epoch timestamp & có hiệu lực trong vòng 20 phútThời gian UNIX Epoch là số giây đã trôi qua kể từ 00:00:00 (giờ chuẩn quốc tế) vào ngày 1 tháng 1 năm 1970
courseIdBắt buộcCourse ID
classJsonBắt buộcClass information array
└ Class informationBắt buộcLesson information to create
  └ classNameBắt buộcĐộ dài của phần này cho phép tối đa 50 ký tựTên lớp
  └ beginTimeBắt buộcLớp học cần có thời gian bắt đầu trong vòng 3 năm tính từ thời điểm hiện tạiThời gian bắt đầu lớp họcbegin time value = Unix Epoch timeStamp
  └ endTimeBắt buộcThời gian kết thúcend time value = Unix Epoch timeStamp
  └ teacherUidBắt buộcUID của giáo viênUID hệ thống trả về khi đăng ký tài khoản thành công
  └ folderIdKhông bắt buộcMặc định là folderID của khóa học
  └ seatNumKhông bắt buộcMặc định là 6 và tối đa là 12 camera trên bục giảngSố camera trên bục giảng ngoài camera giáo viênNếu tham số được truyền là 0 thì lớp sẽ được tạo theo dạng 1v0 (đồng nghĩa với việc chỉ có camera giáo viên hiển thị trên bục giảng)
  └ recordKhông bắt buộcMặc định là 0, các số khác không phải 1 sẽ được hiểu là 0Ghi hình (0=tắt, 1=bật)Nếu bạn cần phát trực tiếp hoặc phát lại, bạn phải chọn ghi hình bài giảng, nếu không bạn sẽ không thể mở phát trực tiếp hoặc phát lại
  └ recordSceneKhông bắt buộcMặc định là 0, các số còn lại khác 1 sẽ được hiểu là 0Ghi hình camera của giáo viên 0=tắt; 1=mởSau khi bật tính năng này, camera của giáo viên sẽ được ghi hình lại. Video ghi hình có thể xem tại link phát lại. Điều kiện để bật tính năng này là lớp học phải có mở chế độ ghi hình (record=1), nếu không hệ thống sẽ báo lỗi khi truyền tham số recordScene
  └ liveKhông bắt buộcMặc định là 0, các số còn lại khác 1 sẽ được hiểu là 0Phát trực tiếp 0=tắt; 1=mở
  └ replayKhông bắt buộcMặc định là 0, các số còn lại khác 1 sẽ được hiểu là 0Phát lại ghi hình lớp học 0=tắt; 1=mở
  └ assistantUidKhông bắt buộcTruyền ít nhất một assistantUid hoặc không truyền tham số này, vui lòng không truyền dữ liệu trốngUID của trợ giảngUID hệ thống trả về khi đăng ký tài khoản thành công
  └ assistantUidsKhông bắt buộcTruyền ít nhất một danh sách assistantUids dạng JSON và Int hoặc không truyền tham số này, vui lòng không truyền dữ liệu trốngDanh sách UID của nhiều trợ giảngUID hệ thống trả về khi đăng ký tài khoản thành công
  └ customColumnKhông bắt buộcTối đa 50 ký tựNếu trường này có thông tin thì hệ thống sẽ trả về dữ liệu tương ứng, còn nếu để trống thì không có dữ liệu trả về
  └ isAutoOnstageKhông bắt buộcMặc định là 0, các số còn lại khác 1 sẽ được hiểu là 00=tự động; 1=không tự độngThiết lập cho học sinh tự động lên bục khi vào lớp, nếu không thì giáo viên phải thao tác đưa học sinh lên bục thủ công
  └ isHdKhông bắt buộcMặc định là 0, các số còn lại khác 1 hoặc 2 sẽ được hiểu là 00=không HD ,1=HD,2=Full HDHiện tại chỉ hỗ trợ hiển thị camera HD hoặc Full HD cho lớp 1V1 hoặc 1V6
  └ courseUniqueIdentityKhông bắt buộcVí dụ: 45s8d5a6asaa1ssf (1-32 bit characters, định dạng không hợp lệ sẽ trả về mã lỗi 100)Mã định danhCơ chế có thể truyền một mã định danh. Sau khi giá trị này được truyền vào, chúng tôi sẽ xác minh xem mã định danh này có tồn tại trong tất cả các lớp đã tạo dưới cơ chế này hay không
  └ classIntroduceKhông bắt buộcPhần giới thiệu/ mô tả lớp có thể để trống, độ dài của phần này cho phép tối đa 1000 ký tự
└ ……Không bắt buộcThông tin lớp học

Response data #

KeyĐịnh dạngPhản hồiÝ nghĩa
dataarray[]Returns an array of Data information
  └ datanumber1369235Sau khi tạo lớp thành công thì hệ thống sẽ trả về ClassID
  └ classNamestring测试课节-1Added class name
  └ customColumnstring123User – defined identity
└ more_dataarray[]Returns an array of Data information
 └ live_urlstringhttps://www.eeo.cn/live.php?lessonKey=0fdc12bc3558164dLesson live player address
 └ live_infoarray[]Returns an array of Data information
   └ RTMPstring“rtmp://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd”Pull flow address
   └ HLSstringhttps://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.m3u8?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cdPull flow address
   └ FLVstringhttps://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.flv?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cdPull flow address
└ datanumber1369235Add class ID
└ classNamestringTest class-1Add the class name
└ errnonumber1Error code for this class
└ errorstring“Normal execution”Error list for this class
error_infoobject Return message object
└ errnonumber1Mã lỗi
└ errorstring“Program normal execution”Thông tin lỗi

Sample #

  • HTTP request
POST /partner/api/course.api.php?action=addCourseClassMultiple HTTP/1.1
Host: www.eeo.cn
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache

SID=2339736&safeKey=5458edceccc78c6698de624e94364285&timeStamp=1493026245&courseId=469383&classJson=[{"className":"Chinese Test-1","beginTime":1493026245,"endTime":1493036245,"teacherUid":"23692341090","folderId":714013,"seatNum":4,"customColumn":123,"isAutoOnstage":0,"watchByLogin":0,"allowUnloggedChat":1",isHd":0,"courseUniqueIdentity":457354},{"className":"Chinses Test-2","beginTime":1493026245,"endTime":1493036245,"teacherUid":"23692341090","folderId":714013,"seatNum":6,"customColumn":124,"isAutoOnstage":0,,"watchByLogin":0,"allowUnloggedChat":1"isHd":0,"courseUniqueIdentity":457354,"classIntroduce ":"ClassIn,真正的在线教室"}]
  • Shell cURL simulates request instructions

 - Shell cURL analog request instruction

 ```bash
 curl -H "Content-Type: application/x-www-form-urlencoded" -X "POST" \
         -d "SID=1234567" \
         -d "safeKey=0f7781b3033527a8cc2b1abbf45a5fd2" \
         -d "timeStamp=1484719085" \
         -d "courseId=442447" \
         -d 'classJson= \
           [ \
             { \
               "className":"测试课节-1", \
               "beginTime":1493029525, \
               "endTime":1493039525, \
               "teacherUid":"1001001",\
               "teacherName":"教师1",\
               "seatNum":4,\
               "record":1,\
               "live":0,\
               "replay":1,\
               "assistantUids": [1001002,1001003,1001004],\
               "isAutoOnstage":"0", \
               "isHd":"0", \
               "courseUniqueIdentity":123457 \
               "classIntroduce":"ClassIn,真正的在线教室" \
             },\
             {\
               "className":"测试课节-2",\
               "beginTime":1493029525,\
               "endTime":1493039525,\
               "teacherUid":"1001002",\
               "teacherName":"教师2",\
               "seatNum":4,\
               "record":1,\
               "live":1,\
               "replay":1,\
               "assistantUids": [1001002,1001003,1001004],\
               "isAutoOnstage":"0", \
               "isHd":"0",\
               "courseUniqueIdentity":1234575 \
               "classIntroduce":"ClassIn,真正的在线教室" \
             }\
           ]' \
        "https://api.eeo.cn/partner/api/course.api.php?action=addCourseClassMultiple"

Response sample(The normal return json packet example) #

{
  "data": [
    {
      "data": 23634,
      "className": "测试课节-1",
      "customColumn": "123",
      "more_data": {
        "live_url": "https://www.eeo.cn/live.php?lessonKey=0fdc12bc3558164d",
        "live_info": {
            "RTMP": "rtmp://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd",
            "HLS": "https://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.m3u8?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd",
            "FLV": "https://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.flv?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd"
          }
        },
      "errno": 1,
      "error": "程序正常执行"
    },
    {
      "data": 23635,
      "className": "测试课节-2",
      "customColumn": "124",
      "more_data": {
        "live_url": "https://www.eeo.cn/live.php?lessonKey=0fdc12bc3558164d",
        "live_info": {
            "RTMP": "rtmp://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd",
            "HLS": "https://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.m3u8?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd",
            "FLV": "https://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.flv?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd"
          }
        },
      "errno": 1,
      "error": "程序正常执行"
    }
  ],
  "error_info": {
    "errno": 1,
    "error": "程序正常执行"
  }
}

Error Code Description #

Error CodeDescription
1Thành công
100Parameters sai định dạng hoặc không hoàn chỉnh
102Không có quyền thao tác (Xác thực bảo mật thất bại)
104Thao tác thất bại
114Lỗi server
119Thời gian kết thúc lớp học phải trễ hơn thời gian bắt đầu
120Thời gian lớp học bắt đầu phải cách thời điểm hiện tại ít nhất là 1 phút
122Tài khoản của giáo viên có định dạng không hợp lệ
133Lớp học này đã tồn tại (courseUniqueIdentity bị lặp lại khi truyền tham số classJson)
136Giáo viên này không thuộc danh sách giáo viên của trường. Vui lòng thêm giáo viên vào trường trước
144Trường không có khóa học này
147Không có thông tin về khóa học này
149Khóa học đã bị xóa
153Khóa học đã kết thúc
155Bảng dữ liệu (array data) không thể để trống
160Trường của bạn không có tệp/thư mục này trong Drive
161Tạo một lớp học không thành công
165Thời gian diễn ra của lớp học tối thiểu là 15 phút và tối đa là 24 giờ
172Học sinh của khóa học không thể được thêm làm giáo viên của lớp
173Người dự thính của khóa học không thể được thêm làm giáo viên của lớp
220Không thể tạo lớp học trên ứng dụng ClassIn
259Số lượng học sinh trên bục vượt quá giới hạn cho phép
268Thời gian bắt đầu của lớp vượt quá giới hạn cho phép (Thời gian bắt đầu phải trong vòng 3 năm tính từ thời điểm hiện tại)
280 Lớp học đã được tạo thành công, tuy nhiên tham số ghi hình lớp học không chính xác. Vì vậy lớp học không được bật chức năng ghi hình
281Lớp học đã được tạo thành công, tuy nhiên có vấn đề với dịch vụ ghi hình. Vì vậy lớp học không được bật chức năng ghi hình
318Không có thông tin của trợ giảng trong danh sách giáo viên của trường
319Học sinh của khóa học không thể được thêm làm trợ giảng
320Người dự thính của khóa học không thể được thêm làm trợ giảng
322Giáo viên của khóa học không thể được thêm làm trợ giảng
324Không thể thêm giáo viên vào danh sách giáo viên trường
326Không thể thêm trợ giảng vào danh sách giáo viên trường
330Định dạng của tài khoản trợ giảng không chính xác (Mã lỗi này đã ngưng sử dụng từ tháng 4 2022)
368Số lượng học sinh được thiết lập trên bục giảng không hỗ trợ hiển thị camera HD
369Lớp học công khai không cho phép thao tác
387Giáo viên đã bị vô hiệu hóa
388Trợ giảng đã bị vô hiệu hóa
398Dữ liệu đã tồn tại (Tham số courseUniqueIdentity đã tồn tại)
400Dữ liệu yêu cầu không hợp lệ
454Thời gian bắt đầu và kết thúc lớp học trùng với thời gian bảo trì của hệ thống
460Khóa học (course) hoặc lớp học (lesson) đang được tạo bởi một lệnh khác với cùng courseUniqueIdentity (trong vòng 1 giây)
800Giáo viên đã bị cấm
804Trợ giảng đã bị cấm
824Lớp học đã được tạo thành công, nhưng phần thiết lập giới thiệu lớp học thất bại
808Không hỗ trợ thiết lập dual camera cho lớp học này
884Tài khoản của GV đã bị xóa
885Tài khoản của trợ giảng đã bị xóa
21316Dữ liệu trợ giảng bị trùng lặp
21317Số lượng trợ giảng đã vượt giới hạn