4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Ruby 2.x] Chatworkに定期投稿する

Last updated at Posted at 2014-11-25

はじめに

以下の記事をなぞってみたメモになります。

#やりたいこと

chatworkを普段使っているので、毎月の定例報告などを流したい。

  • 経費精算締め切り
  • 朝会など定例会開始の呼びかけ

Chatwork API 利用申請

こちらから申請をします。

Screen Shot 2014-11-25 at 15.53.44.png

Screen Shot 2014-11-25 at 15.57.27.png

Chatwork API 獲得

申請をするとすぐにmailが飛んできたりして、使えますよ〜となりました。
ChatworkのPersonal Settingsの中にAPI発行タブが出てくるので、そこからAPIを獲得します。

Screen Shot 2014-11-25 at 15.55.10.png

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

参考というか、ほぼそのままやったのですが、以下を見てやってみました。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?