Viết mã nguồn tự động thông báo điểm UIT (Phần 2)

Share code thông báo cập điểm học tập trên UIT. Hệ thống sẽ thông báo thông qua email và Messenger facebook. Bạn không phải ngồi check hằng giờ nữa.

 

Bài viết này gồm 2 phần:

Phần 1: Nói sơ về cách xử lí và một số thư viện cần dùng

Phần 2: Mã nguồn hoàn chỉnh và cách cài đặt

 

1. Hướng dẫn cài đặt mã nguồn

a. Download

– Đầu tiên bạn tải mã nguồn tại đây:

–> NotificationUITv1.0

– Upload mã nguồn lên website của bạn

– Lưu ý rằng website của bạn phải sử dụng giao thức SSL, bạn có thể tìm đến Cloudflare.

b. Tạo apps trên facebook

Truy cập đường dẫn này https://developers.facebook.com/apps/ tiến hành tạo khá đơn giản cho đến bước sau:

 

Sau đó chọn:

Thêm sản phẩm -> Messenger -> Tạo mã: Bạn chọn page bạn muốn triển khai ứng dụng này, và cấp quyền cho nó. sau đó bạn sẽ nhận được Mã truy cập Trang

 Ví dụ như sau:
 XXXXutGehRkoBAC7FfWOQZB5RPGLyyUoeQ4KOVibYGZCSrM2U6MMPEXXXXV5QwFBBpwtQ1qZA4nMqquOUfOIWdyh5lFA23vETh2YCZCTabgtRDxm5jyhfSEwDZCUuf1h6wuzOVx0lk8gOREaAAUvYtR3b2DAHLTPNBaqvOIhNl9pyKPt7gXXXX
– Chọn Thiết lập webhooks và cấu hình các mục như sau:
Chỉnh cho phù hợp với trang web của bạn, Mục mã xác minh là mã do bạn tự đặt, mã này phải giống với mã được lưu ở biến $verifyServicesFB trong /msg/index.php
Tiếp theo các bạn mở file /msg/index.php điều chỉnh các thông tin sau:
$tokenfb = 'XXXXutGehRkoBAC7FfWOQZB5RPGLyyUoeQ4KOVibYGZCSrM2U6MMPEXXXXV5QwFBBpwtQ1qZA4nMqquOUfOIWdyh5lFA23vETh2YCZCTabgtRDxm5jyhfSEwDZCUuf1h6wuzOVx0lk8gOREaAAUvYtR3b2DAHLTPNBaqvOIhNl9pyKPt7gXXXX';
$appsecretfb = 'xxxxxxxxxxxxxxxxxxxxxxxxxx';
$verifyServicesFB = 'Day_la_ma_do_ban_tu_dat';

$tokenfb bạn lấy ở bước nhận Mã truy cập Trang

$appsecretfb bạn lấy ở trang đầu tiên, Bảng điều khiển

Ngoài ra có thể điều chỉnh thêm các câu phản hồi ở bên dưới, tham khảo thêm về các hàm của botman tại link mình đã chia sẻ ở bài trước.

c. Tạo database và kết nối chúng

Tạo database & user database tại trang quản trị của hosting. Import database sql mình đã để sẵn trong file download.

Mở file /mysql.php điều chỉnh các thông số database của bạn

$username = ""; // username cấp quyền truy cập database
$password = ""; // pass
$dbname = ""; // tên database

Trong file /get.php

$cookie="cookie.txt";

các bạn có thể điều chỉnh dòng này và nhớ đổi tên file /cookie.txt cho giống.

Việc thay đổi get.php này không bắt buộc.

Trong file /check.php

Đoạn code xử lí quá tải webserver

$load = sys_getloadavg();
if ($load[0] > 0.70)
{
    header('HTTP/1.1 503 Too busy, try again later');
    die('Server too busy. Please try again later.');
}

Nếu bạn lo lắng việc chạy code này ảnh hưởng đến việc sử dụng các tài nguyên khác trên máy chủ, có thể để lại dòng lệnh.

Mình khuyên nên để lại 😀

Tiếp theo các bạn copy 3 dòng mã đã điều chỉnh ở trên /msg/index.php thay thế cho đoạn này

$tokenfb = '';
$appsecretfb = '';
$verifyServicesFB = '';

Dòng này

$file_cookie="temp_cookie.3e598d76745e5a0951c17eec14019xxx.txt";

Các bạn có thể đổi hay không tùy thích, và nhớ đổi tên file nếu bạn điều chỉnh ở đây.

Tiếp theo các bạn tìm đến 2 dòng này và cấu hình SMTP như bài trước đã hướng dẫn

$mail->Username = '[email protected]';
$mail->Password = 'XXXXX';

Và điều chỉnh các dòng URL này trong code cho đúng domain của bạn

http://diemthi.kienthuc24h.com

d. Tạo Crontab để hệ thống tự động check

Ở đây, minh sẽ thiết lập cho nó cứ 5 phút, sẽ chạy code check.php để thu thập lại và xử lí thông tin.

Đặt code trên VPS riêng

Nếu website của bạn đang dùng vps riêng có thể tạo crontab như sau:

Command line trong SSH

EDITOR=nano crontab -e

Paste vào đoạn mã sau:

*/5 * * * * curl https://domain_cua_ban/check.php >/dev/null 2>&1

Lưu lại và thoát

Đặt code trên share hosting

Nếu website của bạn đang dùng Share hosting:

Hãy dùng chức năng crontab trong hosting nếu có hoặc có thể sử dụng dịch vụ miễn phí là uptimerobot.com Điều chỉnh nó 5 phút chạy link /check.php là được.

Oke, như vậy là tạm xong, bây giờ bạn có thể dùng facebook cá nhân, cái mà bạn đã dùng để đăng kí apps để gửi tin nhắn cho page và test nó.

Làm thế nào để public ứng dụng?

Thông thường những apps có tính tương tác như thế này đòi hỏi bạn phải được facebook cấp quyền, như vậy, trong trường hợp này, khi vừa thiết lập xong chỉ có bạn mới có thể tương tác với nó, Nếu bạn muốn public cho nhiều người dùng hơn, bạn phải gửi xét duyệt tại mục Apps -> Messenger -> Cài đặt ->Xét duyệt ứng dụng Messenger. Các bạn chỉ cần xét duyệt pages_messaging là ok.

Nếu bạn chỉ có nhu cầu dùng cho cá nhân, hoặc một nhóm người khoảng 4-5 người thì không cần xét duyệt.

Vào mục Vai trò -> Người dùng thử và thêm tên những người cần dùng là được.

2. Thử nghiệm bot và nhận xét

Mình không đánh giá được nó tốn kém tài nguyên như thế nào, nhưng mình khuyên các bạn, chỉ hỗ trợ khoảng 4-5 người dùng. và Thời gian check lại càng lâu càng tốt, đừng quá nhanh, vì nó có thể làm cho website của trường tưởng bạn đang tấn công, và block IP server của bạn.

các bạn nên đổi tên các file check.php để tranh người dùng truy cập và làm lộ điểm của những người dùng khác :)) hoặc xóa các dòng echo trong check.php

Link Test Notification KT24H

add tài khoản vào hệ thống

add tài khoản vào hệ thống

Thông báo nhận được trên messenger khi điểm thi cập nhật

Thông báo nhận được trên messenger khi điểm thi cập nhật

Như vậy là xong, nếu có thắc mắc gì vui lòng đặt câu hỏi dưới đây.

Đừng quên Share bài viết trên nhé 😀

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *