Class: WhatsAppCloudApi::MessagesController

Inherits:
BaseController show all
Defined in:
lib/whats_app_cloud_api/controllers/messages_controller.rb

Overview

MessagesController

Instance Attribute Summary

Attributes inherited from BaseController

#config, #http_call_back

Instance Method Summary collapse

Methods inherited from BaseController

#execute_request, #get_user_agent, #validate_parameters, #validate_response

Constructor Details

#initialize(config, http_call_back: nil) ⇒ MessagesController

Returns a new instance of MessagesController.



9
10
11
# File 'lib/whats_app_cloud_api/controllers/messages_controller.rb', line 9

def initialize(config, http_call_back: nil)
  super(config, http_call_back: http_call_back)
end

Instance Method Details

#send_message(phone_number_id, body) ⇒ SendMessageResponse

Use this endpoint to send text messages, media, message templates to your customers. first assemble a message object with the content you want to send.

Parameters:

  • phone_number_id (String)

    Required parameter: Example:

  • body (Message)

    Required parameter: To send a message, you must

Returns:



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/whats_app_cloud_api/controllers/messages_controller.rb', line 19

def send_message(phone_number_id,
                 body)
  # Prepare query url.
  _query_builder = config.get_base_uri
  _query_builder << '/{Phone-Number-ID}/messages'
  _query_builder = APIHelper.append_url_with_template_parameters(
    _query_builder,
    'Phone-Number-ID' => { 'value' => phone_number_id, 'encode' => true }
  )
  _query_url = APIHelper.clean_url _query_builder

  # Prepare headers.
  _headers = {
    'accept' => 'application/json',
    'Content-Type' => 'application/json'
  }

  # Prepare and execute HttpRequest.
  _request = config.http_client.post(
    _query_url,
    headers: _headers,
    parameters: body.to_json
  )
  OAuth2.apply(config, _request)
  _response = execute_request(_request)
  validate_response(_response)

  # Return appropriate response type.
  decoded = APIHelper.json_deserialize(_response.raw_body)
  SendMessageResponse.from_hash(decoded)
end