Class: EvolutionApi::Client
- Inherits:
-
Object
- Object
- EvolutionApi::Client
- Includes:
- HTTParty
- Defined in:
- lib/evolution_api/client.rb
Overview
Cliente principal para interagir com a Evolution API
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
Instance Method Summary collapse
-
#archive_chat(instance_name, number) ⇒ Object
Arquivar chat.
-
#block_contact(instance_name, number) ⇒ Object
Bloqueia um contato.
-
#check_number(instance_name, number) ⇒ Object
Verifica se um número existe no WhatsApp.
-
#connect_instance(instance_name) ⇒ Object
Conecta uma instância.
-
#create_instance(instance_name, options = {}) ⇒ Object
Cria uma nova instância.
-
#delete_chat(instance_name, number) ⇒ Object
Deletar chat.
-
#delete_instance(instance_name) ⇒ Object
Remove uma instância.
-
#delete_webhook(instance_name) ⇒ Object
Remove webhook.
-
#disconnect_instance(instance_name) ⇒ Object
Desconecta uma instância.
-
#get_chats(instance_name) ⇒ Object
Obtém chats de uma instância.
-
#get_contact(instance_name, number) ⇒ Object
Obtém informações de um contato.
-
#get_contacts(instance_name) ⇒ Object
Obtém contatos de uma instância.
-
#get_instance(instance_name) ⇒ Object
Obtém informações de uma instância.
-
#get_messages(instance_name, number, options = {}) ⇒ Object
Obtém mensagens de um chat.
-
#get_qr_code(instance_name) ⇒ Object
Obtém QR Code de uma instância.
-
#get_webhook(instance_name) ⇒ Object
Obtém configuração de webhook.
-
#initialize(config = nil) ⇒ Client
constructor
A new instance of Client.
-
#list_instances ⇒ Object
Lista todas as instâncias.
-
#mark_messages_as_read(instance_name, number) ⇒ Object
Marca mensagens como lidas.
-
#send_audio_message(instance_name, number, audio_url, options = {}) ⇒ Object
Envia uma mensagem de áudio.
-
#send_button_message(instance_name, number, title, description, buttons) ⇒ Object
Envia uma mensagem de botão.
-
#send_contact_message(instance_name, number, contact_number, contact_name) ⇒ Object
Envia uma mensagem de contato.
-
#send_document_message(instance_name, number, document_url, caption = nil, options = {}) ⇒ Object
Envia um documento.
-
#send_image_message(instance_name, number, image_url, caption = nil, options = {}) ⇒ Object
Envia uma mensagem de imagem.
-
#send_list_message(instance_name, number, title, description, sections) ⇒ Object
Envia uma lista de opções.
-
#send_location_message(instance_name, number, latitude, longitude, description = nil) ⇒ Object
Envia uma localização.
-
#send_text_message(instance_name, number, text, options = {}) ⇒ Object
Envia uma mensagem de texto.
-
#send_video_message(instance_name, number, video_url, caption = nil, options = {}) ⇒ Object
Envia uma mensagem de vídeo.
-
#set_webhook(instance_name, webhook_url, events = nil) ⇒ Object
Configura webhook para uma instância.
-
#unarchive_chat(instance_name, number) ⇒ Object
Desarquivar chat.
-
#unblock_contact(instance_name, number) ⇒ Object
Desbloqueia um contato.
Constructor Details
#initialize(config = nil) ⇒ Client
Returns a new instance of Client.
10 11 12 13 |
# File 'lib/evolution_api/client.rb', line 10 def initialize(config = nil) @config = config || EvolutionApi.config setup_http_client end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
8 9 10 |
# File 'lib/evolution_api/client.rb', line 8 def config @config end |
Instance Method Details
#archive_chat(instance_name, number) ⇒ Object
Arquivar chat
194 195 196 |
# File 'lib/evolution_api/client.rb', line 194 def archive_chat(instance_name, number) post("/chat/archiveChat/#{instance_name}", { number: number }) end |
#block_contact(instance_name, number) ⇒ Object
Bloqueia um contato
226 227 228 |
# File 'lib/evolution_api/client.rb', line 226 def block_contact(instance_name, number) post("/contact/blockContact/#{instance_name}", { number: number }) end |
#check_number(instance_name, number) ⇒ Object
Verifica se um número existe no WhatsApp
221 222 223 |
# File 'lib/evolution_api/client.rb', line 221 def check_number(instance_name, number) post("/contact/checkNumber/#{instance_name}", { number: number }) end |
#connect_instance(instance_name) ⇒ Object
Conecta uma instância
38 39 40 |
# File 'lib/evolution_api/client.rb', line 38 def connect_instance(instance_name) post("/instance/connect/#{instance_name}") end |
#create_instance(instance_name, options = {}) ⇒ Object
Cria uma nova instância
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/evolution_api/client.rb', line 23 def create_instance(instance_name, = {}) body = { instanceName: instance_name, qrcode: [:qrcode] || true, number: [:number], token: [:token], webhook: [:webhook], webhookByEvents: [:webhook_by_events] || false, webhookBase64: [:webhook_base64] || false }.compact post('/instance/create', body) end |
#delete_chat(instance_name, number) ⇒ Object
Deletar chat
204 205 206 |
# File 'lib/evolution_api/client.rb', line 204 def delete_chat(instance_name, number) delete("/chat/deleteChat/#{instance_name}/#{number}") end |
#delete_instance(instance_name) ⇒ Object
Remove uma instância
48 49 50 |
# File 'lib/evolution_api/client.rb', line 48 def delete_instance(instance_name) delete("/instance/delete/#{instance_name}") end |
#delete_webhook(instance_name) ⇒ Object
Remove webhook
256 257 258 |
# File 'lib/evolution_api/client.rb', line 256 def delete_webhook(instance_name) delete("/webhook/del/#{instance_name}") end |
#disconnect_instance(instance_name) ⇒ Object
Desconecta uma instância
43 44 45 |
# File 'lib/evolution_api/client.rb', line 43 def disconnect_instance(instance_name) delete("/instance/logout/#{instance_name}") end |
#get_chats(instance_name) ⇒ Object
Obtém chats de uma instância
174 175 176 |
# File 'lib/evolution_api/client.rb', line 174 def get_chats(instance_name) get("/chat/findChats/#{instance_name}") end |
#get_contact(instance_name, number) ⇒ Object
Obtém informações de um contato
216 217 218 |
# File 'lib/evolution_api/client.rb', line 216 def get_contact(instance_name, number) get("/contact/findContact/#{instance_name}/#{number}") end |
#get_contacts(instance_name) ⇒ Object
Obtém contatos de uma instância
211 212 213 |
# File 'lib/evolution_api/client.rb', line 211 def get_contacts(instance_name) get("/contact/findContacts/#{instance_name}") end |
#get_instance(instance_name) ⇒ Object
Obtém informações de uma instância
53 54 55 |
# File 'lib/evolution_api/client.rb', line 53 def get_instance(instance_name) get("/instance/fetchInstances/#{instance_name}") end |
#get_messages(instance_name, number, options = {}) ⇒ Object
Obtém mensagens de um chat
179 180 181 182 183 184 185 186 |
# File 'lib/evolution_api/client.rb', line 179 def (instance_name, number, = {}) params = { limit: [:limit] || 50, cursor: [:cursor] }.compact get("/chat/findMessages/#{instance_name}/#{number}", params) end |
#get_qr_code(instance_name) ⇒ Object
Obtém QR Code de uma instância
58 59 60 |
# File 'lib/evolution_api/client.rb', line 58 def get_qr_code(instance_name) get("/instance/connect/#{instance_name}") end |
#get_webhook(instance_name) ⇒ Object
Obtém configuração de webhook
251 252 253 |
# File 'lib/evolution_api/client.rb', line 251 def get_webhook(instance_name) get("/webhook/find/#{instance_name}") end |
#list_instances ⇒ Object
Lista todas as instâncias
18 19 20 |
# File 'lib/evolution_api/client.rb', line 18 def list_instances get('/instance/fetchInstances') end |
#mark_messages_as_read(instance_name, number) ⇒ Object
Marca mensagens como lidas
189 190 191 |
# File 'lib/evolution_api/client.rb', line 189 def (instance_name, number) post("/chat/markMessageAsRead/#{instance_name}", { number: number }) end |
#send_audio_message(instance_name, number, audio_url, options = {}) ⇒ Object
Envia uma mensagem de áudio
88 89 90 91 92 93 94 95 96 |
# File 'lib/evolution_api/client.rb', line 88 def (instance_name, number, audio_url, = {}) body = { number: number, audio: audio_url, options: } post("/message/sendAudio/#{instance_name}", body) end |
#send_button_message(instance_name, number, title, description, buttons) ⇒ Object
Envia uma mensagem de botão
148 149 150 151 152 153 154 155 156 157 |
# File 'lib/evolution_api/client.rb', line 148 def (instance_name, number, title, description, ) body = { number: number, title: title, description: description, buttons: } post("/message/sendButton/#{instance_name}", body) end |
#send_contact_message(instance_name, number, contact_number, contact_name) ⇒ Object
Envia uma mensagem de contato
135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/evolution_api/client.rb', line 135 def (instance_name, number, contact_number, contact_name) body = { number: number, contacts: [{ number: contact_number, name: contact_name }] } post("/message/sendContact/#{instance_name}", body) end |
#send_document_message(instance_name, number, document_url, caption = nil, options = {}) ⇒ Object
Envia um documento
111 112 113 114 115 116 117 118 119 120 |
# File 'lib/evolution_api/client.rb', line 111 def (instance_name, number, document_url, caption = nil, = {}) body = { number: number, document: document_url, caption: caption, options: }.compact post("/message/sendDocument/#{instance_name}", body) end |
#send_image_message(instance_name, number, image_url, caption = nil, options = {}) ⇒ Object
Envia uma mensagem de imagem
76 77 78 79 80 81 82 83 84 85 |
# File 'lib/evolution_api/client.rb', line 76 def (instance_name, number, image_url, caption = nil, = {}) body = { number: number, image: image_url, caption: caption, options: }.compact post("/message/sendImage/#{instance_name}", body) end |
#send_list_message(instance_name, number, title, description, sections) ⇒ Object
Envia uma lista de opções
160 161 162 163 164 165 166 167 168 169 |
# File 'lib/evolution_api/client.rb', line 160 def (instance_name, number, title, description, sections) body = { number: number, title: title, description: description, sections: sections } post("/message/sendList/#{instance_name}", body) end |
#send_location_message(instance_name, number, latitude, longitude, description = nil) ⇒ Object
Envia uma localização
123 124 125 126 127 128 129 130 131 132 |
# File 'lib/evolution_api/client.rb', line 123 def (instance_name, number, latitude, longitude, description = nil) body = { number: number, latitude: latitude, longitude: longitude, description: description }.compact post("/message/sendLocation/#{instance_name}", body) end |
#send_text_message(instance_name, number, text, options = {}) ⇒ Object
Envia uma mensagem de texto
65 66 67 68 69 70 71 72 73 |
# File 'lib/evolution_api/client.rb', line 65 def (instance_name, number, text, = {}) body = { number: number, text: text, options: } post("/message/sendText/#{instance_name}", body) end |
#send_video_message(instance_name, number, video_url, caption = nil, options = {}) ⇒ Object
Envia uma mensagem de vídeo
99 100 101 102 103 104 105 106 107 108 |
# File 'lib/evolution_api/client.rb', line 99 def (instance_name, number, video_url, caption = nil, = {}) body = { number: number, video: video_url, caption: caption, options: }.compact post("/message/sendVideo/#{instance_name}", body) end |
#set_webhook(instance_name, webhook_url, events = nil) ⇒ Object
Configura webhook para uma instância
238 239 240 241 242 243 244 245 246 247 248 |
# File 'lib/evolution_api/client.rb', line 238 def set_webhook(instance_name, webhook_url, events = nil) body = { webhook: webhook_url, webhookByEvents: events ? true : false, webhookBase64: false } body[:events] = events if events post("/webhook/set/#{instance_name}", body) end |
#unarchive_chat(instance_name, number) ⇒ Object
Desarquivar chat
199 200 201 |
# File 'lib/evolution_api/client.rb', line 199 def unarchive_chat(instance_name, number) post("/chat/unarchiveChat/#{instance_name}", { number: number }) end |
#unblock_contact(instance_name, number) ⇒ Object
Desbloqueia um contato
231 232 233 |
# File 'lib/evolution_api/client.rb', line 231 def unblock_contact(instance_name, number) post("/contact/unblockContact/#{instance_name}", { number: number }) end |