[Ruby 2.x] Chatwork에 정기 게시
소개
아래의 기사를 따라 본 메모가 됩니다.
하고 싶은 일
chatwork를 평상시 사용하고 있으므로, 매월의 정례 보고등을 흘리고 싶다.
Chatwork API 사용 신청
여기에서 신청합니다.
Chatwork API 획득
신청을 하면 곧바로 mail가 날아오거나 하고, 사용할 수 있어요~가 되었습니다.
Chatwork의 Personal Settings 안에 API 게시 탭이 나오므로 거기에서 API를 획득합니다.
Ruby 코드를 작성합니다.
우선, 방의 정보를 가져옵니다.
require 'rss'
require 'net/https'
require 'json'
CW_API_TOKEN = "API"
def request_api
uri = URI('https://api.chatwork.com/v1/rooms')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true # HTTPSでエンドポイントへ通信が必要です
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
header = { "X-ChatWorkToken" => CW_API_TOKEN } #api_tokenを、headerのX-ChatWorkTokenにセットすることが必要です
body = nil
res = http.get(uri, header) #あとはGETします
puts JSON.parse(res.body)
end
request_api
메시지를 보내고 싶은 방의 Room ID를 기록해 둡니다.
방에 메시지 보내기
require 'rss'
require 'net/https'
require 'json'
CW_API_TOKEN = "API"
ROOM_ID = "ROOM_ID"
def post_msg_to_cw(data)
uri = URI('https://api.chatwork.com/v1/rooms/' + ROOM_ID + '/messages')
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 = "body=" + URI.encode(data)
res = http.post(uri, body, header)
puts JSON.parse(res.body)
end
post_msg_to_cw(ARGV[0])
그리고는 이 코드를 cron으로 잘 설정하면 끝입니다.
Mac에서 Cron
본래라면 항상 움직이고 있는 서버의 cron을 사용하고 싶은 곳입니다만, 이번은 귀찮기 때문에 로컬의 mac에 넣을 때입니다.
*/10 11 19 * * ruby /Users/USERNAME/DIRECTORY/filename.rb "経費精算のお仕事をしましょう"
References
참고라고 할까, 거의 그대로 했습니다만, 이하를 보고 해 보았습니다.
우선, 방의 정보를 가져옵니다.
require 'rss'
require 'net/https'
require 'json'
CW_API_TOKEN = "API"
def request_api
uri = URI('https://api.chatwork.com/v1/rooms')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true # HTTPSでエンドポイントへ通信が必要です
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
header = { "X-ChatWorkToken" => CW_API_TOKEN } #api_tokenを、headerのX-ChatWorkTokenにセットすることが必要です
body = nil
res = http.get(uri, header) #あとはGETします
puts JSON.parse(res.body)
end
request_api
메시지를 보내고 싶은 방의 Room ID를 기록해 둡니다.
방에 메시지 보내기
require 'rss'
require 'net/https'
require 'json'
CW_API_TOKEN = "API"
ROOM_ID = "ROOM_ID"
def post_msg_to_cw(data)
uri = URI('https://api.chatwork.com/v1/rooms/' + ROOM_ID + '/messages')
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 = "body=" + URI.encode(data)
res = http.post(uri, body, header)
puts JSON.parse(res.body)
end
post_msg_to_cw(ARGV[0])
그리고는 이 코드를 cron으로 잘 설정하면 끝입니다.
Mac에서 Cron
본래라면 항상 움직이고 있는 서버의 cron을 사용하고 싶은 곳입니다만, 이번은 귀찮기 때문에 로컬의 mac에 넣을 때입니다.
*/10 11 19 * * ruby /Users/USERNAME/DIRECTORY/filename.rb "経費精算のお仕事をしましょう"
References
참고라고 할까, 거의 그대로 했습니다만, 이하를 보고 해 보았습니다.
require 'rss'
require 'net/https'
require 'json'
CW_API_TOKEN = "API"
ROOM_ID = "ROOM_ID"
def post_msg_to_cw(data)
uri = URI('https://api.chatwork.com/v1/rooms/' + ROOM_ID + '/messages')
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 = "body=" + URI.encode(data)
res = http.post(uri, body, header)
puts JSON.parse(res.body)
end
post_msg_to_cw(ARGV[0])
본래라면 항상 움직이고 있는 서버의 cron을 사용하고 싶은 곳입니다만, 이번은 귀찮기 때문에 로컬의 mac에 넣을 때입니다.
*/10 11 19 * * ruby /Users/USERNAME/DIRECTORY/filename.rb "経費精算のお仕事をしましょう"
References
참고라고 할까, 거의 그대로 했습니다만, 이하를 보고 해 보았습니다.
Reference
이 문제에 관하여([Ruby 2.x] Chatwork에 정기 게시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/colorrabbit/items/d2b9bae92fc0fdaa7878텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)