Class: WhatsAppCloudApi::MediaController
- Inherits:
-
BaseController
- Object
- BaseController
- WhatsAppCloudApi::MediaController
- Defined in:
- lib/whats_app_cloud_api/controllers/media_controller.rb
Overview
MediaController
Instance Attribute Summary
Attributes inherited from BaseController
Instance Method Summary collapse
-
#delete_media(media_id) ⇒ SuccessResponse
This endpoint can be used for deleting a media object.
-
#initialize(config, http_call_back: nil) ⇒ MediaController
constructor
A new instance of MediaController.
-
#retrieve_media_url(media_id) ⇒ RetrieveMediaURLResponse
To retrieve your media’s URL, make a request to this endpoint.
-
#upload_media(phone_number_id, messaging_product, file, type) ⇒ UploadMedia
Used to upload media.
Methods inherited from BaseController
#execute_request, #get_user_agent, #validate_parameters, #validate_response
Constructor Details
#initialize(config, http_call_back: nil) ⇒ MediaController
Returns a new instance of MediaController.
9 10 11 |
# File 'lib/whats_app_cloud_api/controllers/media_controller.rb', line 9 def initialize(config, http_call_back: nil) super(config, http_call_back: http_call_back) end |
Instance Method Details
#delete_media(media_id) ⇒ SuccessResponse
This endpoint can be used for deleting a media object. uploading media endpoint or media message Webhooks
17 18 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 |
# File 'lib/whats_app_cloud_api/controllers/media_controller.rb', line 17 def delete_media(media_id) # Prepare query url. _query_builder = config.get_base_uri _query_builder << '/{Media-ID}' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'Media-ID' => { 'value' => media_id, 'encode' => true } ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json' } # Prepare and execute HttpRequest. _request = config.http_client.delete( _query_url, headers: _headers ) OAuth2.apply(config, _request) _response = execute_request(_request) validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) SuccessResponse.from_hash(decoded) end |
#retrieve_media_url(media_id) ⇒ RetrieveMediaURLResponse
To retrieve your media’s URL, make a request to this endpoint. Later, you can use this URL to download the media file. uploading media endpoint or media message Webhooks
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/whats_app_cloud_api/controllers/media_controller.rb', line 51 def retrieve_media_url(media_id) # Prepare query url. _query_builder = config.get_base_uri _query_builder << '/{Media-ID}' _query_builder = APIHelper.append_url_with_template_parameters( _query_builder, 'Media-ID' => { 'value' => media_id, 'encode' => true } ) _query_url = APIHelper.clean_url _query_builder # Prepare headers. _headers = { 'accept' => 'application/json' } # Prepare and execute HttpRequest. _request = config.http_client.get( _query_url, headers: _headers ) OAuth2.apply(config, _request) _response = execute_request(_request) validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) RetrieveMediaURLResponse.from_hash(decoded) end |
#upload_media(phone_number_id, messaging_product, file, type) ⇒ UploadMedia
Used to upload media. All media files sent through this endpoint are encrypted and persist for 30 days. used for the request. In this case, use whatsapp. local directory. For example: “@/local/path/file.jpg”. uploaded. See Supported Media Types for more information. Supported options for images are: ‘image/jpeg`, `image/png` Supported options for documents are: `text/plain`, `application/pdf`, `application/vnd.ms-powerpoint`, `application/msword`, `application/vnd.ms-excel`, `application/vnd.openxmlformats-officedocument.wordprocessingml.document`, `application/vnd.openxmlformats-officedocument.presentationml.presentation `, `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` Supported options for audio are: `audio/aac`, `audio/mp4`, `audio/mpeg`, `audio/amr`, `audio/ogg`, `audio/opus` Supported options for video are: `video/mp4`, `video/3gp` Supported options for stickers are: `image/webp`
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/whats_app_cloud_api/controllers/media_controller.rb', line 101 def upload_media(phone_number_id, messaging_product, file, type) # Prepare query url. _query_builder = config.get_base_uri _query_builder << '/{Phone-Number-ID}/media' _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' } # Prepare form parameters. _parameters = { 'messaging_product' => messaging_product, 'file' => file, 'type' => type } _parameters = APIHelper.form_encode_parameters(_parameters) # Prepare and execute HttpRequest. _request = config.http_client.post( _query_url, headers: _headers, parameters: _parameters ) OAuth2.apply(config, _request) _response = execute_request(_request) validate_response(_response) # Return appropriate response type. decoded = APIHelper.json_deserialize(_response.raw_body) UploadMedia.from_hash(decoded) end |