0

API chatwork trong ruby

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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí