How to Send WhatsApp API using Ruby

Introduction to WhatsApp API with Ruby

In this tutorial, we will create simple examples to send messages using WhatsApp API using Ruby.

Initially, you must make sure that the net/http library is ready Because we will use this library In this article to send messages to the Ultramsg Gateway.

First WhatsApp message using Ruby

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.ultramsg.com/instance1316/messages/chat")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/x-www-form-urlencoded'
request.body = "token=5v941eyo9eqixrsi&to=14155552671&body=WhatsApp API on UltraMsg.com works good&priority=10&referenceId="

response = http.request(request)
puts response.read_body

When the previous code is executed, and if the message is sent successfully, the response will be like this:

{"sent":"true","message":"ok","id":47}

Send Image

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.ultramsg.com/instance1316/messages/image")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/x-www-form-urlencoded'
request.body = "token=5v941eyo9eqixrsi&to=14155552671&image=https://file-example.s3-accelerate.amazonaws.com/images/test.jpg&caption=image Caption&referenceId="

response = http.request(request)
puts response.read_body

Send Document

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.ultramsg.com/instance1316/messages/document")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/x-www-form-urlencoded'
request.body = "token=5v941eyo9eqixrsi&to=14155552671&filename=hello.pdf&document=https://file-example.s3-accelerate.amazonaws.com/documents/cv.pdf&referenceId="

response = http.request(request)
puts response.read_body

Send Audio

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.ultramsg.com/instance1316/messages/audio")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/x-www-form-urlencoded'
request.body = "token=5v941eyo9eqixrsi&to=14155552671&audio=https://file-example.s3-accelerate.amazonaws.com/audio/2.mp3&referenceId="

response = http.request(request)
puts response.read_body

Send Voice

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.ultramsg.com/instance1316/messages/voice")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/x-www-form-urlencoded'
request.body = "token=5v941eyo9eqixrsi&to=14155552671&audio=https://file-example.s3-accelerate.amazonaws.com/voice/oog_example.ogg&referenceId="

response = http.request(request)
puts response.read_body

Send Video

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.ultramsg.com/instance1316/messages/video")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/x-www-form-urlencoded'
request.body = "token=5v941eyo9eqixrsi&to=14155552671&video=https://file-example.s3-accelerate.amazonaws.com/video/test.mp4&referenceId="

response = http.request(request)
puts response.read_body
require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.ultramsg.com/instance1316/messages/link")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/x-www-form-urlencoded'
request.body = "token=5v941eyo9eqixrsi&to=14155552671&link=https://en.wikipedia.org/wiki/COVID-19&referenceId="

response = http.request(request)
puts response.read_body

Send Contact

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.ultramsg.com/instance1316/messages/contact")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/x-www-form-urlencoded'
request.body = "token=5v941eyo9eqixrsi&to=14155552671&[email protected]&referenceId="

response = http.request(request)
puts response.read_body

Send Location

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.ultramsg.com/instance1316/messages/location")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/x-www-form-urlencoded'
request.body = "token=5v941eyo9eqixrsi&to=14155552671&address=ABC company \n Sixth floor , office 38&lat=25.197197&lng=55.2721877&referenceId="

response = http.request(request)
puts response.read_body

Send Vcard

require 'uri'
require 'net/http'
require 'openssl'

url = URI("https://api.ultramsg.com/instance1316/messages/vcard")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/x-www-form-urlencoded'
request.body = "token=5v941eyo9eqixrsi&to=14155552671&vcard= BEGIN:VCARD\nVERSION:3.0\nN:lastname;firstname\nFN:firstname lastname\nTEL;TYPE=CELL;waid=14000000001:14000000002\nNICKNAME:nickname\nBDAY:01.01.1987\nX-GENDER:M\nNOTE:note\nADR;TYPE=home:;;;;;;\nADR;TYPE=work_:;;;;;;\nEND:VCARD&referenceId="

response = http.request(request)
puts response.read_body

finally, you can see Full Whatsapp API Documentation and FAQ.