Code Monkey home page Code Monkey logo

whatsapp's Introduction

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

whatsapp's People

Contributors

bsoares avatar caiocsdev avatar dom-r avatar dukex avatar eliada2 avatar hasaniskandar avatar luisribeiro avatar otaviohenrique avatar rafaeldev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

whatsapp's Issues

undefined method base_path

my step:

  1. add gem "whatsapp" in Gemfile

  2. bundle install

  3. run in rake file:
    whats = Whats::Api.new
    whats.send_message("my WA number", "Message goes here.")

  4. show error like this:
    NoMethodError: undefined method `base_path' for nil:NilClass

...docs/whatsapp ?

The links you provided in your readme are not working. I am not sure how this whole api is supposed to work without the actual whatsapp official api. Was it there and removed or something?

WhatsApp Certificate

Hi folks,

How you are handle with the Whatsapp certificate? Are you upload one?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.