16 thg 6, 2012

Viết Bot Yahoo bằng PHP

Bot là một ứng dụng tự động hóa các thao tác của con người, là một dạng viết tắt của Robot. Tuy nhiên nó không phải là người máy như người ta thường nói. Yahoo Bot là một con Bot sẽ giúp ta nhận và trả lời khi được tài khoản Y!M khác gửi thông điệp. Với con Bot này ta có thể treo acc Y!M cả ngày mà không cần phải dùng máy tính hay điện thoại. Nếu khôn khéo một tí bạn có thể biến nó thành một cổ máy hỗ trợ khách hàng 24/24 hay một công cụ hữu ích.
Xem thêm về Bot tại đây.
Hiện có một trang web, cung cấp cho bạn các hàm API cần thiết để viết một con bot riêng cho mình bằng PHP. Đó là imified.com, quá trình cài đặt cũng như sử dụng tương tác với bot vô cùng dễ dàng. Chỉ với vài thao tác nhỏ bạn sẽ có ngay một con Bot ưng ý.
Trước hết bạn cần phải tạo một file PHP. Để xử lý và trả lại các thông điệp nhận từ imified.com. Một số giá trị mà bạn cần phải biết trước khi viết mã PHP. 2 giá trị chính mà imified.com gửi về, có thể được truy xuất thông qua 2 biến sau:

$_REQUEST['user']
$_REQUEST['msg']
Và cũng dễ hiểu thôi, $_REQUEST['user'] chứa nick của người gửi thông điệp. $_REQUEST['msg'] chứa nội dung thông điệp. Để trả lại thông điệp muốn trả lời cho người gửi, ta có thể dùng hàm xuất echo. Một vài ví dụ nhỏ:
[code:php]<?php
$nick = $_REQUEST['user'];
if ($_REQUEST['msg'] == "Chào") {
echo "Chào bạn ". $_REQUEST['user'];
}
?>[/code]
Diễn dịch đoạn code trên, khi có người nào gửi thông điệp là “Chào” cho bot. Bot sẽ đáp lại với thông điệp “Chào bạn [nick người gửi]“. Thật đơn giản đúng không nào? Để nội dung trả lời thêm phong phú, ta có thể dùng cấu trúc rẽ nhánh switch ( ) { case 1 … case 2 … case 3 … }. Một ví dụ khác:
[code:php]<?php
$nick = $_REQUEST['user'];
switch ($_REQUEST['msg']) {
case "help":
echo "Chào bạn, mình là Yahoo bot. Mình có nhiệm vụ trả lời các tin nhắn của mọi người gửi đến khi ông chủ Minh Nhựt vắng mặt :D. Một số lệnh bạn có thể dùng với Bot này:<br />trangchu -> địa chỉ trang chủ<br />lienhe -> liên hệ với bác Minh Nhựt";
break;
case "trangchu":
echo "http://minhnhut.info";
break;
case "lienhe":
echo "Nếu muốn liên hệ với Minh Nhựt, bạn vui lòng gửi email vào địa chỉ admin@minhnhut.info nhé :-P";
break;
default:
echo "Chào bạn <b>{$nick}</b>. Hiện bác Minh Nhựt không trực tuyến xin bạn liên lạc lại sau. Gõ:<br>help -> để biết thêm chi tiết";
$text = "(" . $time . ")" . $nick . ": " . $_REQUEST['msg'] . "\n";
break;
}
?>[/code]
Tham khảo thêm:
Các câu lệnh rẽ nhánh trong PHP (phần đầu)
Các câu lệnh rẽ nhánh trong PHP (phần cuối)
[-noalt-]
Bot thực chiến …
Thông tin
Bạn có thể sử dụng các biểu tượng vui bình thường. Ví dụ :D :) :-P .v..v… . Có thể dùng <br> bên HTML để xuống dòng, Dùng thẻ <b></b> để viết in, …
Đại loại về phần PHP là như trên, bạn có thể tô vẽ thêm bất cứ thứ gì bằng trí tưởng tượng của bạn. Về phần imified.com, bạn cần báo cho imified.com biết địa chỉ bạn dùng để xử lí thông tin (file php ở trên, mới làm xong). Bạn hãy đăng ký tài khoản mới tại:
http://www.imified.com/account/signup/
Bạn sẽ phải xác nhận tài khoản bằng thư cofirm được gửi vào mail của bạn. Sau khi đăng ký hoàn tất, bạn hãy đăng nhập bằng tài khoản mới và ấn vào nút “+ Create a New Bot” bên phải. Trong cửa sổ mới, bạn sẽ phải điền các thông tin sau.
Bot Name: Tên bot, đặt gì cũng được.
Screen Name: Tên hiển thị, cái này bên GTalk với Jabber dùng.
Bot URL: (quan trọng) địa chỉ đến file php hồi nảy ta đã chuẩn bị.
Điền và ấn Create Bot. Sau khi tạo xong bot, để ý phía dưới bạn sẽ thấy phần tên là Network Settings. Chọn biểu tượng Yahoo, điền tên đăng nhập và password, nickname cho tài khoản mà bạn dùng làm bot. Click Active, nếu thành công thì nút active sẽ xậm lài và thành nút Deactive. Khi nào bạn muốn tắt bot thì chỉ cần ấn Deactive. Trong trường hợp không active đươc thì bạn xem lại mật khẩu và username nhé.
Xong, vậy là bot của bạn đã hoạt động rồi đó. Thử dùng một acc khác chat với nó và xem thành quả lao động . Thắc mắc? không làm được? comment tại đây để được giải đáp trong thời gian sớm nhất có thể.
Ngoài PHP bạn thậm chí có thể dùng file .txt hay .html, nói chung là bất kỳ cái nào có thể xuất văn bản, và tất nhiên bạn không thể lọc các giá trị được như trong PHP. Do đó bot của bạn sẽ bị giới hạn về số loại câu có thể nói, nó chỉ có thể lập đi lập lại một câu duy nhất.
Ghi chú
Bot tương đối nhẹ, và không đòi hỏi nhiều hàm phức tạm. Bạn có thể thí nghiệm trên bất kỳ host nào có PHP. Mặc dù tốn không bao nhiêu bandwidth, mình vẫn khuyến khích chơi cái này trên host free .

Không có nhận xét nào:

Đăng nhận xét