API chatwork trong ruby
Bài đăng này đã không được cập nhật trong 8 năm
Bạn thường xuyên sử dụng chatwork, và đôi khi công việc yêu cầu bạn phải gửi tin nhắn hàng ngày tới mọi người trong danh bạ, hay gửi tới mọi người trong 1 group với cùng 1 nội dung (mang tính chất thông báo).
Vậy bạn sẽ làm gì? copy - pastes? Thật may là bạn không phải làm thế vì chatwork cung cấp API giúp bạn làm việc đó dễ dàng hơn.
Setup
- Trước hết để lấy TOKEN_KEY account chatwork, bạn click vào tại đây
- Sau đó, bạn sẽ nhận đươc 1 email chatwork báo về, nội dung chỉ là thông báo bạn đã kích hoạt thành công việc lấy TOKEN_KEY (có thể không cần quan tâm tới nội dung mail, tuy nhiên bạn chỉ lấy được TOKEN_KEY khi có mail báo về, thời gian có thể là 2, 3 phút, đôi khi bạn phải đợi tới ngày hôm sau )
- Bây giờ bạn vào chatwork, logout ra nếu đang login. Vào mục Personal Setting -> API để lấy API
Lưu ý TOKEN_KEY là bảo mật, bạn không tiết lộ TOKEN_KEY cho người khác, vì có TOKEN_KEY là hoàn toàn có thể sử dụng tài khoản của bạn
Nếu nghi ngờ TOKEN_KEY đã bị lộ, thì bạn có thể đổi sang 1 TOKEN_KEY khác bằng cách click Regenarate
Using
OK, sau khi đã có TOKEN_KEY, bạn có thể dùng nó để gửi tin nhắn, get list friends trong contact của bạn, get all members trong 1 group mà bạn join, và nhiều việc khác (trong API chatwork cho phép @@)
Để sử dung chatwork api trong ruby thì các bạn cài gem chatwork
Send a message
Thật dễ dàng, trong document của gem chatwork ở trên đã có giới thiệu
require "chatwork"
# Create message
ChatWork.api_key = "XXX"
ChatWork::Message.create(room_id: 1234, body: "Hello, ChatWork!")
Get your account infomation
Nếu trên terminal
curl -X GET -H "X-ChatWorkToken: YOUR_API_CHATWORK" "https://api.chatwork.com/v1/me”
Nếu trong ruby code Bạn cũng có thể gọi câu lệnh terminal trong ruby code
require "chatwork"
data = Kernel.system 'curl -X GET -H "X-ChatWorkToken: YOUR_API_CHATWORK" "https://api.chatwork.com/v1/me"'
puts data
Hoặc dùng net/https
require 'net/https'
require 'json'
CW_API_TOKEN = "YOUR_API_CHATWORK"
uri = URI('https://api.chatwork.com/v1/me')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
header = { "X-ChatWorkToken" => CW_API_TOKEN }
body = nil
res = http.get(uri, header)
puts JSON.parse(res.body)
Vì Chatwork trả kết quả về kiểu JSON, nên sau khi có responed, ta cần convert về JSON (phương thức JSON.parse)
And the others
Để get list friends, all members trong 1 group hay get all tasks... các bạn tham khảo thêm document của chatwork api
Việc đơn giản bây giờ là thay thế uri bằng link tương ứng với nhu cầu của bạn
Bonus
-
Sau khi có thể lấy được danh sách bạn bè hay member của 1 groups, bây giờ bạn muốn chương trình tự động gửi tin nhắn hằng ngày thay vì phải copy paste cho từng người thì bạn có thể dùng gem whenever
-
Document của gem đã nói rất kỹ về cách dùng, mình k trình bày thêm, mình chỉ xin nói thêm mấy lệnh thường dùng
crontab -l
# => Dùng để list all những whenever đang chạy
whenever -c
# => Clear, Xóa hết các whenever đang chạy, có thể gọi là stop cũng được
whenever --update-crontab => start
# => Khởi chạy whenever, hoặc khi có thay đổi trong file config thì cũng phải chạy lệnh này.
All rights reserved