PHP - Viết một API chatfuel như thế nào?

Tham gia
25/2/17
Bài viết
1
#1
Khoảng 2 năm trước, Facebook cho ra mắt Messenger Platform cho developer . Qua nền tản này cũng mở ra một hướng đi mới cho việc tiếp cận với khách hàng thông qua nền tản messenger được tích hợp sẳn trên Facebook. Việc tiếp cận giữa các doanh nghiệp với khách hàng có thể diễn ra một cách tự động. Điều này giúp tiếp kiệm thời gian đồng thời cũng hiệu quả hơn cho cả 2 bên

Tuy nhiên, để các lập trình viên tiếp cận với nền tản này còn rất khó khăn. Điều này có thể vì lí do rào cản ngôn ngữ. Ngôn ngữ ở đây mình muốn nói đến là ngôn ngữ lập trình. Nền tản messenger này được viết dựa trên ngôn ngữ NodeJs. Bởi vì Nodejs có tính realtime rất tốt. Điều này đặc biệt hữu dụng khi nó lắng nghe các sự kiện từ phía người dùng và gửi response kết quả trả về một cách nhanh nhất.

CHO ĐẾN KHI CHATFUEL XUẤT HIỆN
Thong qua Chatfuel,người dùng có thể tạo ra một chatbot đơn giản cho fanfage của mình một cách nhanh chóng kể cả khi họ không được trang bị những kiến thức về lập trình. Nó có những ưu điểm nổi trội phải kể đến như:
- Hoàn toàn miễn phí.
- Giao diện lập trình trực quan qua các block, mỗi block tượng trưng cho một chức năng, không sử dụng code.
- Kết nối trực tiếp với fanpage, không cần tạo app lằng nhằng.
- Không cần gửi xét duyệt với Facebook.
- Không giới hạn số bot được tạo ra.
- Có sẵn nhiều plugins kết nối với những dịch vụ khác: Instagram, Twitter, Youtube…
- Đặc biệt nhất nữa là tính năng JSON API cho bạn khả năng tích hợp mọi loại API vào trong 1 con chatbot.
Nhờ tính năng này mà rào cản về ngôn ngữ được xóa bỏ. Các lập trình viên có thể tích hợp việc tự động hóa dựa trên những JSON API này.

Trong bài viết này mình sẽ hướng dẫn các bạn cách viết json api qua một ví dụ đơn giản để giúp các bạn hiểu rõ hơn về cách viết API chatfuel:
"Giả sử bạn bạn có người yêu ở Mẽo ( Mỹ). Người yêu bạn du học ở nơi đất khách quê người rất cu đơn :v .Bạn cần phải biết giờ sinh hoạt ở bên ấy để tiện quan tâm tới người yêu. Tại sao không thử làm con bot tra cứu giờ bên ấy nhỉ ?"

Giờ thì thực hiện thôi
1. Viết code
Việc viết 1 API cho chatfuel thực chất là bạn đang xử lí dữ liệu theo dạng json. Bạn có thể google để biết thêm về dạng dữ liệu này. Thật không khó khi bạn có thể search ra document của chatfuel về api này. http://docs.chatfuel.com/plugins/plugin-documentation/json-api . Bạn chỉ cần trả về một chuổi json theo dạng mà bạn mong muốn như: text, button, images, audio,video,... tương ứng. Ở đây mình muốn chatbot hiện ra đơn giản chỉ là một đoạn text nói chuyện như bình thường để hiện thì giờ ở bên Mẽo mà thôi nên chúng ta xét đoạn json này:
PHP:
{
"messages": [
   {"text": "Bây giờ là [giờ] ở Mỹ"}
]
}
Các bạn chỉ cần lo in đoạn json ấy ra thì việc bot sẽ reply ra thông báo ngày giờ "Bây giờ là [máy giờ đó] ở Mỹ" là việc của chatfuel :).
Để linh hoạt cho việc xử lí các chuỗi json này, PHP cung cấp chúng ta 2 hàm đó là json_encode và json_decode
PHP:
string json_encode ($array)

array json_decode ( $json_string)
Trong đó json_encode dùng để chuyển một mảng array sang một chuổi json và json_decode chuyển một chuỗi json sang một mạng array để tiện truy xuất key và value có trong json như truy xuất key value có trong mảng.
Như vậy, đầu tiên chúng ta cần chuyển chuỗi json sang array để xử lí, sau đó lại chuyển array vừa chuyển ở trên sang chuỗi json lại để chatfuel có thể xử lí và send đoạn text mà ta muốn.
PHP:
function sendText($text){
    $arr = array (
        'messages' =>
        array (
            0 =>
            array (
                'text' => $text,
            ),
        ),
    );
    echo json_decode($arr);
  
}
Ở hàm sendText trên mình đã khai báo trực tiếp một mảng theo đúng định dạng của chatfuel mà sau khi decode chuỗi json mà mình đã nêu ở trên.
Bạn có thể thực hiện
tại đây
Và đây là code hoàn thiện
PHP:
 date_default_timezone_set("America/New_York");
$time = date("H:i:s");
sendText("Bây giờ là ". $time.  "Ở Mỹ");
function sendText($text){
    $arr = array (
        'messages' =>
        array (
            0 =>
            array (
                'text' => $text,
            ),
        ),
    );
    echo json_encode($arr);
  
}
List TimeZone bạn có thể tìm thấy tại :
http://php.net/manual/en/timezones.php .
2. Cấu hình
Giờ thực hiện việc cấu hình trên chatfuel như sau:
B1: Tạo một bot mới và tiến hành connect tới fanfage của các bạn ( Nếu như làm lần đầu)
B2: Ở tab Automate tiến hành tạo 1 block mới và đặt tên cho block đó
B3: Thêm một đối tượng rồi chọn JSON API


B4: Gõ url để chatfuel có thể gọi đến khi bắt được sự kiện người dùng ở JSON API. URL này chính là url trỏ tới file php chứa đoạn code vừa rồi

B5: Chuyển tới tab Set Up AI chọn block
Điều này có nghĩa khi user gõ time thì chatfuel sẽ chuyển tới block time - Chính là block bạn vừa đặt tên và cấu hình vừa rồi.

Đến đây mọi công đoạn đã xong. Bọn có thể trở về fanfage rồi test thử bot có hoạt động hiệu quả hay không.

Nếu có thắc mắc gì đừng quên chia sẽ ở group itrum để được giải đáp nhé.

>_GYS​
 

Thành viên trực tuyến

Không có thành viên trực tuyến.

Group TechViews

Chủ Đề Tương Tự

Thống kê diễn đàn

Chủ đề
1,407
Bài viết
2,939
Thành viên
6,532
Thành viên mới nhất
maygiatlg
Top Bottom