chatworkにメッセージを送るワンライナーとrubyスクリプト


環境変数のAPI_KEYにチャットワークのAPIが入っている前提です。
export API_KEY=XXXXXXとか実行してください。
ルーム番号とメッセージは適宜書き換えてください。

ワンライナー

curl -X POST -H "X-ChatWorkToken: $API_KEY" -d "body=`ruby -e 'require "cgi";print CGI.escape("メッセージ")'`" "https://api.chatwork.com/v2/rooms/ルーム番号/messages"

rubyスクリプト

./chatwork.rb ルーム番号 "メッセージ"

chatwork.rb
#!/usr/bin/env ruby

require 'net/https'

def post_chatwork_api(room_id, message)
  url = "https://api.chatwork.com/v2/rooms/#{room_id}/messages"
  uri = URI.parse(url)
  https = Net::HTTP.new(uri.host, uri.port)
  https.use_ssl = true # HTTPSでよろしく
  request = Net::HTTP::Post.new(uri.request_uri)
  request.add_field "X-ChatWorkToken", ENV["API_KEY"]
  request.set_form_data :body => message
  response = https.request(request)
  puts response.body
end

post_chatwork_api ARGV[0], ARGV[1]

API_KEYの取得方法 

チャットワークAPIは APIトークン発行ページから取得できます。

ルーム番号のとり方

該当するルームのチャットの発言でメッセージにある「リンク」をクリックすると出て来る
https://www.chatwork.com/#!ridNNNNNNN-XXXXXXXXXXXXXX
にある、ridと-の間の所がルームIDです。