Bot-Chatwork-2 : Làm cho Bot thông minh hơn

Posted by
alt text

1. Vấn đề và những việc sẽ làm.

https://cauchuyencoder.com/cau-chuyen-lap-trinh/bot-chatwork-1-tao-bot-chat-tren-chatwork-thong-qua-google-apps-script/

Như bài trước mình có tạo ra một con bot để notifi cho group trên Chatwork. Nhưng có vẻ nó đang thiếu I-Ốt nên hơn đần tí, tiêu biểu như việc nó notifi không chính xác đến từng phút lên group. Hôm nay mình sẽ viết tiếp để giải quyết 2 vấn đề:

  • Sử dụng function có sẵn, thay vì việc tự làm lại bánh xe cho xe máy.
  • Setup thời gian cho con Bot hoạt động chính xác và dùng trigger.

2. Làm thôi

a. Sử dụng function có sẵn.

  • Làm lại function sendMessage() Trước hết chúng ta sẽ Set lại roomId và Api Token Nhưng ở phần một sau khi tạo một script để viết code tại https://script.google.com/home/start thì chúng ta đã có token của con Bot và room_id của group chúng ta tham gia.Bạn vào File => Project properties => Scripts properties => Add row Ở đây mình để: cw_room_id chính là room_id của group. cw_token chính là token của em Bot.

Trong code chúng ta sửa một chút. Trước hết là lấy thêm thư viện ChatWorkClient

alt text

Bạn vào Resoures => Libraries
Nhập mã M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT vào Add a library
Bật On, chọn version 18 rồi save lại.
Bạn có thể tham khảo tại http://c-note.chatwork.com/post/69590585422/chatworkapi-gas-library

Chúng ta sẽ chỉnh một chút code như sau

function morningMtg() {
  message = "[toall]\n 8時にBigroomでお願いします。";
  sendToChatwork(message);
}

function sendToChatwork(message) {
  if (message == "") {
    return;
  }
  var scriptProperties = PropertiesService.getScriptProperties();
  var api_token   = scriptProperties.getProperty("cw_token");
  var room_id     = scriptProperties.getProperty("cw_room_id");
  var cw = ChatWorkClient.factory({token: api_token});
  cw.sendMessage({room_id: room_id, body: message});
}

Vậy là function sendToChatwork có thể sử dụng được nhiều lần và ở nhiều nơi.

b. Tạo thời gian để gửi message.

Bấm vào cái hình đồng hồ ngay cạnh nút Run.
Bấm vào Add Trigger.

alt text


Lúc này mình sẽ chỉnh time về chạy Every minute và trong code chỉnh sửa một ít.

function morningMtg() {
  var message = "[toall]\n 8時にBigroomでお願いします。";
  var today = new Date();
  if (today.getHours() == 22 && today.getMinutes() == 44 && today.getDay() == 6) {
    sendToChatwork(message);
  }
}

Vậy là chúng ta sẽ có notifi của Bot là vào 22h44 thứ 7.

Kết quả là

3. Tổng kết.

Link tham khảo.
http://c-note.chatwork.com/post/69590585422/chatworkapi-gas-library

Tạm thời mình sẽ dừng tại đây.
Sắp tới sẽ có bài viết tạo Bot thông qua Google Sheet. Mình nghĩ Google Sheet là một công cụ rất mạnh và tiện lợi cho công việc. Vậy nên sẽ có bài này. Hi vọng sẽ có sớm.

Leave a Reply

Your email address will not be published. Required fields are marked *