Project

whatsapp

0.04
No release in over 3 years
Low commit activity in last 3 years
There's a lot of open issues
A Ruby interface to WhatsApp Enterprise API.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

Runtime

~> 1.3
 Project Readme

WhatsApp

Build Status Gem Version

A ruby interface to WhatsApp Enterprise API.

Installation

Add this line to your application's Gemfile:

gem "whatsapp"

Or manualy install

gem install whatsapp

then require it when there's a need to use it

require "whatsapp"

Usage

Setting up a WhatsApp Business API Client

For the gem to be useful you need a WhatsApp Business account from Facebook. You can get it here: https://developers.facebook.com/docs/whatsapp/getting-started

That link also has the documentation for the Whatsapp api, which this gem aims to encapsulate. After that you should have to containers running, the whatsapp-core and whatsapp-web

Configuration

Before you can send messages there's some Configuration to be done. Set the base path, username and password for the whatsapp-web container

Whats.configure do |config|
  config.base_path = "https://example.test"
  config.user = "admin"
  config.password = "secret password"
end

Create an instance of the API client, which is going to be used from now on to interact with whatsapp

whats = Whats::Api.new

Check Contacts

Take a look here (WhatsApp Check Contacts doc) for more information.

whats.check_contacts(["+5511942424242"])

# output:
{
  "contacts" => [
    {
      "input" => "+5511942424242",
      "status" => "valid",
      "wa_id" => "5511942424242"
    }
  ]
}

Send Message

Take a look here (WhatsApp Send Message doc) for more information.

The first parameter is the WhatsApp username!

whats.send_message("5511942424242", "Message goes here.")

# output:
{
  "messages" => [{
    "id" => "BAEC4D1D7549842627"
  }]
}

Send HSM (templated) messages

Send a kind of message that will not allow the receiver to flag it as spam since it's template was pre approved by WhatsApp, find more informations here

whats.send_hsm_message(
  "+1234567890",
  "cdb2df51_9816_c754_c5a4_64cdabdcad3e",
  "purchase_with_credit_card",
  "en",
  [ # ordered list of replacements that will happen at the template
    {default: "$10"},
    {default: "300"},
  ]
)

# output:

{
  "messages": [{
    "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU"
  }]
}

Tests

Running tests

rspec

Debugging specs

You can print all stubs using the environment variable PRINT_STUBS=true like this:

PRINT_STUBS=true rspec

All stubs can be seen in the debugging session from the wiki: https://github.com/getninjas/whatsapp/wiki/Debugging