Tạo buổi học (Create Classroom)

Mục lục

Giao diện này được sử dụng để tạo buổi học (Lesson/Classroom).

Ghi chú:

  • API này chỉ hỗ trợ tạo buổi học bình thường, không hỗ trợ tạo buổi học liên kết cho tính năng Lớp học liên kết (Dual teacher lesson).
  • Số lượng buổi học trong một lớp có giới hạn.
  • Tham số screenMode và teachMode không cần truyền bởi vì sẽ được định dạng theo thiết lập cameraHide
    • Nếu cameraHide=0 (hiển thị bục giảng), thì teachMode=1 và screenMode=1.
    • Nếu cameraHide=1 (không hiển thị bục giảng), thì teachMode=2 và screenMode=2.
  • Giao diện này không cho phép lựa chọn danh sách người tham gia hoạt động; mặc định Publish to all members.
  • Sau khi tạo buổi học sẽ ở trạng thái hiển thị công khai – không thể tạo buổi học với dạng nháp thông qua API.
  • Nếu buổi học được thiết lập tự động Ghi hình lưu về Cloud nhưng không mở livestream thì data sẽ vẫn trả về live_url, nhưng phần live_info sẽ trống.
  • Nếu bật cả tự động Ghi hình lưu về Cloud và livestream thì 3 thông tin pulling stream addresses (RTMP, HLS, FLV) sẽ được tạo và gắn với buổi học. Thông tin data sẽ trả về live_url và pulling stream live_info. Nếu tính năng livestream bị tắt sau khi buổi học được tạo thì 3 thông tin pulling stream vẫn tồn tại.
  • Nếu không bật tự động ghi hình thì cả thông tin live_url và pulling stream live_info đều trống.
  • recordTyperecordStateliveState, và openState là các tham số bắt buộc truyền và liên quan với nhau, không được bỏ trống, nếu không sẽ bị báo lỗi.

Note:

  • This interface only supports the creation of standard classrooms and does not support the creation of dual-teacher sub-classerooms.
  • There is a limit on the total number of classes that can be created under a single course. If this limit is exceeded, an error will occur.
  • The number of activities that can be created under a single unit (including classroom) is limited to 100. Exceeding this limit will result in an error.
  • The parameters of screenMode (screen mode) and teachMode (teaching mode) are not needed. They are assigned appropriate values based on the value of cameraHide (whether to hide the seat area).
    • If cameraHide=0 (seat area shown), then teachMode=1 (online classroom) and screenMode=1 (standard mode).
    • If cameraHide=1 (seat area hidden), then teachMode=2 (smart classroom), and screenMode=2 (large-screen mode).
  • This interface does not support selecting the participants of the classroom activity; the default setting is to Publish to all members.
  • This interface only supports the creation of published classrooms and does not support drafts.
  • If cloud recording is enabled but web live streaming is not activated, the data will return the classroom web-live player address live_url, while the pulling stream address live_info will be empty.
  • If both cloud recording and web live streaming are enabled, three pulling stream addresses (RTMP, HLS, FLV) will be generated and bound to the classroom. The data will return the classroom web-live player address live_url and the pulling stream addresses live_info. If the web-live streaming is later canceled, the three pulling stream addresses will still exist and remain bound to the classroom.
  • If the classroom does not enable cloud recording, both the web-live player address live_url and the pulling stream addresses live_info in the data will be empty.
  • recordTyperecordStateliveState, and openState constitute a complete set of parameters and cannot be partially passed; otherwise, an error will occur.

URL

https://api.eeo.cn/lms/activity/createClass

HTTP Request Methods

  • POST

Coding Format

  • UTF-8

Request Data

Header Parameters

Key Bắt buộc Định dạng Mô tả
X-EEO-SIGN Bắt buộc string Signature; tham khảo cách tạo tại đây
X-EEO-UID Bắt buộc string SID (Xem dữ liệu này tại Trang quản lý classin.com trong mục API)
X-EEO-TS Bắt buộc string Timestamp (Thờ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)

Body Parameters

 

Key Bắt buộc Định dạng Mô tả Hướng dẫn
courseId Bắt buộc integer ID của lớp Tương đương với 1 Class hiển thị trên App ClassIn còn định nghĩa trong doc API là Course
unitId Không bắt buộc integer Unit ID Khi không truyền, hệ thống sẽ lấy UnitID mặc định của lớp để gán cho buổi học
name Bắt buộc string Tên buổi học Tối đa 50 ký tự
teacherUid Bắt buộc integer UID của GV UID hệ thống trả về khi đăng ký tài khoản thành côn
startTime Bắt buộc integer Thời gian bắt đầu Theo chuẩn thời gian UNIX Epoch (trong vòng 2 năm tính từ thời điểm hiện tại)
endTime Bắt buộc integer Thời gian kết thúc Theo chuẩn thời gian UNIX Epoch
assistantUids Không bắt buộc array[integer] Danh sách UID của Trợ giảng Ví dụ: [1000082,1000083]. Mặc định buổi học sẽ không có Trợ giảng nếu tham số này không được truyền;
Nhập UID được trả về khi gọi API register người dùng vào trường
cameraHide Không bắt buộc integer Thiết lập ẩn/hiện bục giảng 0 = Không (hiển thị bục giảng), 1 = Có (Ẩn bục giảng). Mặc định 0; nếu không truyền thì tham số sẽ theo mặc định; nếu tham số truyền sai thì sẽ hiện báo lỗiparameter error; khicameraHide = 1, isAutoOnstage sẽ luôn là 0
isAutoOnstage Không bắt buộc integer Thiết lập cho thành viên lớp tự động hiển thị trên bục khi vừa vào lớp 0 = Không, 1 = Có. Mặc định là 1; nếu không truyền; nếu tham số truyền sai thì sẽ hiện báo lỗi parameter error.
seatNum Không bắt buộc integer Số lượng camera hiển thị trên bục giảng Bao gồm cả camera của GV;
Ví dụ: truyền 1 nghĩa là chọn chế độ 1v0 (chỉ hiển thị 1 camera của GV); nếu tham số này bỏ trống thì hệ thống sẽ mặc định để là 7 (tương đương chế độ 1v6). Nếu gói dịch vụ của trường có thiết lập số lượng camera trên bục thấp hơn thì hệ thống sẽ lấy dữ liệu dựa theo gói dịch vụ của trường
isHd Không bắt buộc integer Chất lượng hiển thị của camera 0 = SD, 1 = HD, 2 = Full HD. Mặc định là 0 khi tham số này không được truyền; Nếu tham số được truyền khác với các giá trị trên, hệ thống sẽ trả lỗi parameter error. Hiện tại, chỉ hỗ trợ chất lượng HD và FullHD cho chế độ 1v1 hoặc 1v6.
isDc Không bắt buộc integer Buổi học có sử dụng chế độ dual-camera hay không 0 = Không cho phép, 3 = Cho phép. Mặc định là 0 khi tham số này không được truyền; Nếu tham số được truyền khác với các giá trị trên, hệ thống sẽ trả lỗi parameter error; Nếu isDc là 3 và số camera trên bục được thiết lập không phải chế độ 1v1 thì hệ thống sẽ trả lỗi this setting does not support dual-camera; Khi isDC = 3 và vàseatNum = 2, thì isHd sẽ mặc định là 2 (hệ thống sẽ bỏ qua giá trị được truyền ở trường isHd).
recordType Không bắt buộc integer Thiết lập chế độ ghi hình buổi học 0 = Ghi hình lớp học, 1 = Ghi hình camera giáo viên, 2 = Ghi hình lớp học và camera giáo viên. Mặc định là 0 khi tham số này không được truyền; Nếu tham số được truyền khác với các giá trị trên, hệ thống sẽ trả lỗi parameter error.
recordState Không bắt buộc integer Thiết lập tự động bật ghi hình buổi học lưu về cloud 0 = Tắt (hệ thống không tự động ghi hình buổi học), 1 = Bật ghi hình. Mặc định là 0 khi tham số này được truyền trống; Nếu tham số được truyền có giá trị khác với các giá trị trên, hệ thống sẽ trả lỗi parameter error. Khi ghi hình tự động được bật, trường có thể sử dụng luồng ghi hình để tạo link livestream hoặc link phát lại ghi hình lớp học.
liveState Không bắt buộc integer Thiết lập chế độ livestream 0 = Tắt, 1 = Bật livestream. Mặc định là 0 khi tham số này được truyền trống; Nếu tham số được truyền có giá trị khác với các giá trị trên, hệ thống sẽ trả lỗi parameter error. Nếu trường này truyền tham số là 1 thì recordState bắt buộc truyền 1
openState Không bắt buộc integer Thiết lập chế độ phát lại ghi hình 0 = Tắt, 1 = Bật phát lại ghi hình. Mặc định là 0 khi tham số này được truyền trống; Nếu tham số được truyền có giá trị khác với các giá trị trên, hệ thống sẽ trả lỗi parameter error. Nếu trường này truyền tham số là 1 thì recordState bắt buộc truyền 1
isAllowCheck Không bắt buộc integer Cho phép học sinh xem báo cáo học tập của nhau 0 = Không cho phép, 1 = Cho phép. Mặc định là 1 khi tham số này được truyền trống; Nếu tham số được truyền có giá trị khác với các giá trị trên, hệ thống sẽ trả lỗi parameter error.
uniqueIdentity Không bắt buộc string Mã định danh Ví dụ: 45s8d5a6asaa1ssf (giá trị từ 1-32 ký tự). Nếu truyền giá trị không tuân thủ quy tắc sẽ nhận báo lỗi parameter error; một mã định danh duy nhất có thể được truyền đi để xác minh xem mã định danh duy nhất này đã tồn tại trong tổ chức hay chưa, ngăn chặn việc tạo trùng lặp do sự cố mạng.
omoStationBroadcast Không bắt buộc integer Thiết lập chế độ livestreamOMO 0 = Tắt, 1 = Bật livestreamOMO. Nếu tham số được truyền có giá trị khác với các giá trị trên, hệ thống sẽ trả lỗi parameter error
cloudFolderID Không bắt buộc integer ID của thư mục cần gắn Nếu tham số này không được truyền, hệ thống sẽ mặc định lấy cloudFolderId trùng với folderId của course

Response Data

Key Định dạng Phản hồi Ý nghĩa
code integer 1 Mã lỗi
msg string “Execution successful”  
data object    
 └ activityId integer 25096094 ID của hoạt động
 └ classId integer 1141162 ID buổi học
 └ name string “API Created Classroom” Tên lớp
 └ live_info object    
  └ RTMP string   Địa chỉ pull stream theo giao thức RTMP
  └ HLS string   Địa chỉ pull stream theo giao thức HLS
  └ FLV string   Địa chỉ pull stream theo giao thức FLV
 └ live_url string   Địa chỉ trang phát livestream/ phát lại ghi hình

Sample

  • HTTP request
POST /lms/activity/createClass HTTP/1.1
Host: root_url
X-EEO-SIGN: 5cb85cc272274a4353a9dc4c8dcdf0fc
X-EEO-UID: 409864
X-EEO-TS: 1722938160
Content-Type: application/json
Content-Length: 274

{
    "courseId": 414193,
    "unitId": 26020897,
    "name": "API Created Classroom",
    "teacherUid": 409864,
    "startTime": 1723010760,
    "endTime": 1723016760,
    "liveState": 1,
    "openState": 1,
    "recordState": 1,
    "recordType": 0
}
  • Shell cURL analog request instruction
curl -X POST \
     -H 'Host: root_url' \
     -H 'X-EEO-SIGN: 5cb85cc272274a4353a9dc4c8dcdf0fc' \
     -H 'X-EEO-UID: 409864' \
     -H 'X-EEO-TS: 1722938160' \
     -H 'Content-Type: application/json' \
     -d '{"courseId": 414193, "unitId": 26020897, "name": "API Created Classroom", "teacherUid": 409864, "startTime": 1723010760, "endTime": 1723016760, "liveState": 1, "openState": 1, "recordState": 1, "recordType": 0}' \
     'https://root_url/lms/activity/createClass'

Response Sample(The normal return json packet example)

{
    "code": 1,
    "msg": "Execution successful",
    "data": {
        "activityId": 25107347,
        "classId": 1152680,
        "live_info": {
            "RTMP": "rtmp://liveplay.eeo.cn/eeolive/576f5a8c97de-18329123b10cec7d2?txSecret=c10b423a82cab861860081c02d03d87b&txTime=7d8d37cd",
            "HLS": "https://liveplay.eeo.cn/eeolive/576f5a8c97de-18329123b10cec7d2.m3u8?txSecret=c10b423a82cab861860081c02d03d87b&txTime=7d8d37cd",
            "FLV": "https://liveplay.eeo.cn/eeolive/576f5a8c97de-18329123b10cec7d2.flv?txSecret=c10b423a82cab861860081c02d03d87b&txTime=7d8d37cd"
        },
        "live_url": "https://www.eeo.cn/live.php?lessonKey=3dca7b0e14e3bb35",
        "name": "api-0829"
    }
}

Error Code Descriptions

Mã lỗiMô tả
100Lỗi tham số
104Lỗi server
119Thời gian kết thúc phải muộn hơn thời gian bắt đầu
120Thời gian bắt đầu không hợp lệ
136Không có thông tin giáo viên này trong danh sách GV của trường
147Không có thông tin của lớp học này
158Thêm học sinh không thành công
160Thư mục không hợp lệ
161Tạo buổi học thất bại
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
219Giáo viên không tồn tại
220Thêm buổi học thất bại
221Chỉnh sửa thông tin ghi hình buổi học thất bại
267Buổi học được tạo thành công nhưng thiết lập livestream thất bại
268Thời gian bắt đầu buổi học không hợp lệ
318Trợ giảng không thuộc 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
325Học sinh học thử không thể được thêm làm giáo viên của lớp
326Không thể thêm trợ giảng vào danh sách giáo viên trường
387Giáo viên đã bị vô hiệu hóa
388Trợ giảng đã bị vô hiệu hóa
390Chương đã đạt số lượng hoạt động tối đa, vui lòng chọn chương khác
451Thêm ảnh bìa và đoạn giới thiệu cho buổi học livestream thất bại
454Thời gian bắt đầu/thời gian kết thúc buổi học trùng với thời gian bảo trì hệ thống
769Giáo viên đứng lớp phải là GVCN (yêu cầu đối với trường đang sử dụng phiên bản thử nghiệm)
800Giáo viên đã bị cấm
804Trợ giảng đã bị cấm
884GV đã bị vô hiệu hóa
885Trợ giảng đã bị vô hiệu hóa
21304Phiên bản hiện tại không hỗ trợ thiết lập cấp học
21317Số lượng trợ giảng của buổi học đã vượt mức quy địn
21319Tài khoản GV đã bị xóa
40031Vượt số lượng hoạt động tối đa của chương
101001001Lỗi tham số
101002005Lỗi signature
101002006Timestamp hết hạn
101002008Lỗi timestamp
101003001Tần suất lặp lại quá nhiều
110100066Phiên bản này không hỗ trợ chế độ dual-camera
121601003Trường đã đạt giới hạn số lượng buổi học được phép tạo trong một tháng, nâng cấp phiên bản để tạo thêm buổi học
121601004Trường đã đạt giới hạn số lượng buổi học được phép tạo mỗi tháng, không thể thao tác thêm
121601020Lỗi tham số
121601021Lớp học này không thuộc quản lý của trường
121601022Lớp học này không phải lớp học tiêu chuẩn
121601023Lớp học này đã kết thúc và không thể thao tác được
121601070Vượt số lượng buổi học tối đa của lớp
121604007Tính năng Livestream OMO không được hỗ trợ. Vui lòng kiểm tra dịch vụ với người quản lý tài khoản