Tạo lớp học (Lesson)

Mục lục

Cần cung cấp tham số SID, safeKey, timeStamp, ID khóa học, tên lớp, thời gian bắt đầu lớp, thời gian kết thúc lớp, ID giáo viên, tên giáo viên, ID thư mục được cấp quyền cho lớp học và thông tin chi tiết về học sinh, trợ giảng, quyền hạn, độ phân giải của camera, mã định danh, mô tả lớp học, UID giáo viên, UID trợ giảng. Trong đó, SID, safeKey, timeStamp, courseId, className, beginTime, endTime, teacherAccount, teacherName là bắt buộc. Sau khi tạo lớp thành công, ID lớp học sẽ được trả về.

Lưu ý: Hiện tại độ phân giải HD và Full HD chỉ hỗ trợ cho lớp 1v1 hoặc 1v6. 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.

 
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

Need to provide SID, safekey, timeStamp, course ID, class name, class start time, class end time, teacher’s ID, teacher name, cloud dirve directory ID, and details of the students,co-teacher,Whether the power,Whether the hd、A unique identifier、Class introduction、The teacher UID、Ta UID。Among them SID、safeKey、timeStamp、courseId、className、beginTime、endTime、teacherAccount、teacherName are mandatory. Returns the class ID after the creation and the instructions after execution.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. After the unique identity is passed by the mechanism, the interface will verify whether there is this unique identity in all created classes under the mechanism,If so, the class ID that was created successfully before is returned.If not, execute normally.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.

Notes:

  • If class recording is set (live streaming is not set), more_data returns the live streaming player address of the 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 add account、nickname、checkCode joining together in https://live.eeo.cn/live_partner.html?lessonKey=00d1c98a91c52568 behind 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 keys
    • lessonKey can be obtained from the broadcast address
    • account is student account,nickname is student nickname
    • checkCode = md5(secret+lessonKey+account+nickname)
  • Example URL splicing
    • 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=addCourseClass

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
classNameBắt buộcTê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úc lớp họ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ấy folderID của khóa học (course)Thư mục được cấp quyền
seatNumKhông bắt buộcMặc định là 6, tối đa là 12Số học sinh trên bụcNế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)
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
recordKhô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 lớp học 0=tắt; 1=mở
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ở
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ự
watchByLoginKhông bắt buộcMặc định là 0. Khi tham số này không được truyền hoặc truyền giá trị lỗi thì hệ thống sẽ sử dụng giá trị mặc định0=không bắt đăng nhập,1=yêu cầu đăng nhập

Khi tính năng này được bật, người dùng sẽ nhận yêu cầu đăng nhập với tài khoản ClassIn để xem link phát trực tiếp của lớp học.

Nếu hai hoặc nhiều hơn các mục sau không được bật: ghi hình, phát trực tiếp trên trang web và phát lại trên trang web, thì tham số này sẽ không được sử dụng ngay cả khi nó đã được thiết lập

allowUnloggedChatKhông bắt buộcMặc định là 1. Khi tham số này không được truyền hoặc truyền giá trị lỗi thì hệ thống sẽ sử dụng giá trị mặc định0=không cho phép,1=cho phép

Tính năng này được bật sẽ cho phép người dùng chưa đăng nhập được phép tham gia trò chuyện trực tiếp và bày tỏ sự yêu thích (nhấn like)

Nếu ghi hình lớp học và phát trực tiếp không được bật. Tham số này không được sử dụng

Response data #

KeyĐịnh dạngPhản hồiÝ nghĩa
datanumber1340801Sau khi tạo lớp thành công thì hệ thống sẽ trả về ClassID
 └ more_dataarray[]Returns an array of Data information
 └ live_urlstringhttps://www.eeo.cn/live.php?lessonKey=0fdc12bc3558164dLink livestream
 └ 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
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=addCourseClass HTTP/1.1
Host: www.eeo.cn
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache

SID=2339736&safeKey=e2f53f7a1b51bc86e52bbd080d8bf0f0&timeStamp=1493350659&courseId=490583&className=Chinese-10&beginTime=1493607694&endTime=1493609694&teacherUid=1001001&teacherName=Danma&folderId=&seatNum=6&record=1&live=0&replay=1&assistantUids=[1001002,100004]&isAutoOnstage=0&isHd=0&courseUniqueIdentity=54421&classIntroduce=ClassIn,真正的在线教室
  • Shell cURL analog request instruction

    curl -H "Content-Type: application/x-www-form-urlencoded" -X "POST" \
         -d "SID=1234567" \
         -d "safeKey=0f7781b3033527a8cc2b1abbf45a5fd2" \
         -d "timeStamp=1484719085" \
         -d "courseId=442447" \
         -d "className=测试课节-1" \
         -d "beginTime=1492506000" \
         -d "endTime=1492507800" \
         -d "teacherUid=1001001" \
         -d "teacherName=教师" \
         -d "folderId=22418" \
         -d "seatNum=6" \
         -d "record=1" \
         -d "live=1" \
         -d "replay=1" \
         -d "assistantUids=[100100,100101]" \
         -d "isAutoOnstage=0" \
         -d "isHd=0" \
         -d "courseUniqueIdentity=4565234" \
         -d "classIntroduce=ClassIn,真正的在线教室" \
         "https://api.eeo.cn/partner/api/course.api.php?action=addCourseClass"
    

Response sample(The normal return json packet example) #

{
  "data": 23623,
  "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"
        }
    },
  "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
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
160Trường của bạn không có tệp/thư mục này trong Drive
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
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)
280Lớ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
323Trợ giảng không thể được thêm vào lớp học
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