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.
- 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.
RTMP | HLS | FLV(HTTP-FLV) | |
---|---|---|---|
The full name | Real Time Message Protocol | HTTP Liveing Streaming | RTMP over HTTP |
agreement | Long TCP connection | Short HTTP connection | Long HTTP connection |
The principle of | Data at each moment is forwarded as soon as it is received | Collect data for a period of time, generate ts slice files (three slices), and update the m3u8 index | With RTMP, using HTTP protocol (port 80) |
Time delay | 1-3s | 5-20s(depending on the slice) | 1-3s |
Web support | Plug-ins are required in H5 | Support the H5 | Plug-ins are required in H5 |
other | Cross-platform support is poor, need Flash technical support | Playback needs multiple requests, high quality requirements for the network | Need 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:

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 linkhttps://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
- Ví dụ:
- 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 APIlessonKey
lấy từ link phát trực tiếpaccount
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)
- Các tham số
- 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.
RTMP | HLS | FLV(HTTP-FLV) | |
---|---|---|---|
The full name | Real Time Message Protocol | HTTP Liveing Streaming | RTMP over HTTP |
agreement | Long TCP connection | Short HTTP connection | Long HTTP connection |
The principle of | Data at each moment is forwarded as soon as it is received | Collect data for a period of time, generate ts slice files (three slices), and update the m3u8 index | With RTMP, using HTTP protocol (port 80) |
Time delay | 1-3s | 5-20s(depending on the slice) | 1-3s |
Web support | Plug-ins are required in H5 | Support the H5 | Plug-ins are required in H5 |
other | Cross-platform support is poor, need Flash technical support | Playback needs multiple requests, high quality requirements for the network | Need 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 inhttps://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
- Example:
- 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 keyslessonKey
can be obtained from the broadcast addressaccount
is student account,nickname
is student nickname- checkCode = md5(secret+lessonKey+account+nickname)
- Specific parameters are
- Example URL splicing
https://live.eeo.cn/live_partner.html?lessonKey=00d1c98a91c52568&account=13700000000&nickname=classin&checkCode=d8c57caf088529b4ddd15b0f694d847b
https://api.eeo.cn/partner/api/course.api.php?action=addCourseClass
HTTP Request Methods #
- POST
Coding format #
- UTF-8
Request data #
Key | Bắt buộc | Yêu cầu thêm | Mô tả | Hướng dẫn |
---|---|---|---|---|
SID | Bắt buộc | — | ID của trường | Xem dữ liệu này tại Trang quản lý classin.com trong mục API |
safeKey | Bắt buộc | Fixed 32-bit all lowercase characters | Khóa bảo mật xác thực trường học | safeKey=MD5(SECRET+timeStamp) |
timeStamp | Bắt buộc | — | Theo Unix Epoch timestamp & có hiệu lực trong vòng 20 phút | 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 |
courseId | Bắt buộc | — | Course ID | — |
className | Bắt buộc | — | Tên lớp | — |
beginTime | Bắt buộc | Lớ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ại | Thời gian bắt đầu lớp học | begin time value = Unix Epoch timeStamp |
endTime | Bắt buộc | — | Thời gian kết thúc lớp học | end time value = Unix Epoch timeStamp |
teacherUid | Bắt buộc | — | UID của giáo viên | UID hệ thống trả về khi đăng ký tài khoản thành công |
folderId | Không bắt buộc | Mặc định lấy folderID của khóa học (course) | Thư mục được cấp quyền | — |
seatNum | Không bắt buộc | Mặc định là 6, tối đa là 12 | Số học sinh trên bục | Nế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) |
assistantUid | Không bắt buộc | Truyề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ống | UID của trợ giảng | UID hệ thống trả về khi đăng ký tài khoản thành công |
assistantUids | Không bắt buộc | Truyề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ống | Danh sách UID của nhiều trợ giảng | UID hệ thống trả về khi đăng ký tài khoản thành công |
record | Không bắt buộc | Mặc định là 0, các số còn lại khác 1 sẽ được hiểu là 0 | Ghi hình lớp học 0=tắt; 1=mở | — |
recordScene | Không bắt buộc | Mặc định là 0, các số còn lại khác 1 sẽ được hiểu là 0 | Ghi 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 |
live | Không bắt buộc | Mặc định là 0, các số còn lại khác 1 sẽ được hiểu là 0 | Phát trực tiếp 0=tắt; 1=mở | — |
replay | Không bắt buộc | Mặc định là 0, các số còn lại khác 1 sẽ được hiểu là 0 | Phát lại ghi hình lớp học 0=tắt; 1=mở | — |
isAutoOnstage | Không bắt buộc | Mặc định là 0, các số còn lại khác 1 sẽ được hiểu là 0 | 0=tự động; 1=không tự động | Thiế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 |
isHd | Không bắt buộc | Mặc định là 0, các số còn lại khác 1 hoặc 2 sẽ được hiểu là 0 | 0=không HD ,1=HD,2=Full HD | Hiện tại chỉ hỗ trợ hiển thị camera HD hoặc Full HD cho lớp 1V1 hoặc 1V6 |
courseUniqueIdentity | Không bắt buộc | Ví dụ: 45s8d5a6asaa1ssf (1-32 bit characters, định dạng không hợp lệ sẽ trả về mã lỗi 100) | Mã định danh | Cơ 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 |
classIntroduce | Không bắt buộc | Phầ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ự | — | — |
watchByLogin | Không bắt buộc | Mặ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 định | 0=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 |
allowUnloggedChat | Không bắt buộc | Mặ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 định | 0=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ạng | Phản hồi | Ý nghĩa |
---|---|---|---|
data | number | 1340801 | Sau khi tạo lớp thành công thì hệ thống sẽ trả về ClassID |
└ more_data | array | [] | Returns an array of Data information |
└ live_url | string | https://www.eeo.cn/live.php?lessonKey=0fdc12bc3558164d | Link livestream |
└ live_info | array | [] | Returns an array of Data information |
└ RTMP | string | “rtmp://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd” | Pull flow address |
└ HLS | string | “https://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.m3u8?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd“ | Pull flow address |
└ FLV | string | “https://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.flv?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd“ | Pull flow address |
error_info | object | Return message object | |
└ errno | number | 1 | Mã lỗi |
└ error | string | “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 Code | Description |
---|---|
1 | Thành công |
100 | Parameters sai định dạng hoặc không hoàn chỉnh |
102 | Không có quyền thao tác (Xác thực bảo mật thất bại) |
104 | Thao tác thất bại |
114 | Lỗi server |
119 | Thời gian kết thúc lớp học phải trễ hơn thời gian bắt đầu |
120 | Thờ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 |
136 | Giá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 |
144 | Trường không có khóa học này |
147 | Không có thông tin về khóa học này |
149 | Khóa học đã bị xóa |
153 | Khóa học đã kết thúc |
160 | Trường của bạn không có tệp/thư mục này trong Drive |
165 | Thờ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ờ |
172 | Học sinh của khóa học không thể được thêm làm giáo viên của lớp |
173 | Ngườ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 |
259 | Số lượng học sinh trên bục vượt quá giới hạn cho phép |
268 | Thờ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 |
281 | Lớ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 |
318 | Không có thông tin của trợ giảng trong danh sách giáo viên của trường |
319 | Học sinh của khóa học không thể được thêm làm trợ giảng |
320 | Người dự thính của khóa học không thể được thêm làm trợ giảng |
322 | Giáo viên của khóa học không thể được thêm làm trợ giảng |
323 | Trợ giảng không thể được thêm vào lớp học |
324 | Không thể thêm giáo viên vào danh sách giáo viên trường |
326 | Khô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) |
368 | Số 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 |
369 | Lớp học công khai không cho phép thao tác |
387 | Giáo viên đã bị vô hiệu hóa |
388 | Trợ giảng đã bị vô hiệu hóa |
398 | Dữ liệu đã tồn tại (Tham số courseUniqueIdentity đã tồn tại) |
400 | Dữ liệu yêu cầu không hợp lệ |
454 | Thờ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 |
460 | Khó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) |
800 | Giáo viên đã bị cấm |
804 | Trợ giảng đã bị cấm |
824 | Lớ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 |
808 | Không hỗ trợ thiết lập dual camera cho lớp học này |
884 | Tài khoản của GV đã bị xóa |
885 | Tài khoản của trợ giảng đã bị xóa |
21316 | Dữ liệu trợ giảng bị trùng lặp |
21317 | Số lượng trợ giảng đã vượt giới hạn |