ChatworkAPIでメッセージを投稿(Ruby)


ChatworkAPIを使用してメッセージの投稿を行ってみたのでメモ。
ChatworkAPIトークンの発行からrubyで作ったプログラムでメッセージ投稿、cronでの操作を行ってみました。
ここから改造して色々やる予定。

投稿方法

ChatworkAPI公式ドキュメント

APIトークンの発行

メッセージ投稿プログラム

chatwork.rb
class Chatwork
  require 'net/http'
  require 'uri'

  ROOMID = #ルームID
  POSTURL = 'https://api.chatwork.com/v2/rooms/#[ルームID]/messages'
  TOKEN = #発行したAPIトークン

  def main
    uri = URI.parse(POSTURL)
    https = Net::HTTP.new(uri.host, uri.port) 
    https.use_ssl = true

    req = Net::HTTP::Post.new(uri.request_uri)
    req['X-ChatWorkToken'] = TOKEN
    req.set_form_data({'body' => 'メッセージ', 'self_unread' => 0}) # bodyは必須

    res = https.request(req)
  end
end

Chatwork.new.main

実行

ruby ./chatwork.rb

投稿結果

ちゃんとメッセージが投稿されました!

cronで回してみる

cronに追記

プログラムを配置してる場所を指定。

cron
*/1 * * * * ruby /Users/[ユーザ名]/Documents/git/chatwork/chatwork.rb

実行結果

1分ごとに投稿されることを確認。