ChatWork APIを使ってメッセージを投稿する(Ruby編)

net/httpの使い方を学ぶために、ChatWork APIを叩くサンプルコードを書いてみました。

require 'net/https'
require 'uri'
require 'json'

ROOM_ID = 'ROOM ID TO POST'
CHATWORK_API_TOKEN = 'YOUR API TOKEN'

# チャットワークAPIのエンドポイントへはhttps接続必須
uri = URI.parse "https://api.chatwork.com/v1/rooms/#{ROOM_ID}/messages"

# リクエストインスタンスを生成
# APIトークンはHTTPリクエストヘッダに X-ChatWorkToken というキーでセットする
request = Net::HTTP::Post.new(uri.request_uri, initheader = {'X-ChatWorkToken' => CHATWORK_API_TOKEN})
# POSTするメッセージをセット("body"パラメータにメッセージ本文をセットする)
query_hash = {"body" => "Chatwork API Test"}
request.set_form_data(query_hash)

# メッセージをPOST
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
  http.request(request)
end

# レスポンス(JSON形式)を表示
# POSTが成功した場合はmessage_idが返却される
# エラーの場合はerrorsというキーに配列形式でエラーメッセージが返却される
JSON.parse(response.body).each do |key, value|
  puts "#{key} : #{value}"
end

参考サイト/書籍

comments powered by Disqus