1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
45
46
47
48
49
50
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
79
80
81
82
83
84
85
86
device_service! {
/// API de WhatsApp (device-based): `POST /whatsapp/{action}`.
/// Exige `Authorization: Bearer` + `DeviceToken`.
///
/// ```no_run
/// # use apibrasil::ApiBrasil;
/// # use serde_json::json;
/// # async fn exemplo(api: ApiBrasil) -> apibrasil::Result<()> {
/// api.whatsapp().start(json!({ "webhook_wh_message": "https://exemplo.com/hook" })).await?;
///
/// let qr = api.whatsapp().qrcode(None).await?;
/// println!("{:?}", qr.response());
///
/// api.whatsapp().send_text(json!({ "number": "5511999999999", "text": "Olá!" })).await?;
///
/// // qualquer action do catálogo, e a versão por fila
/// api.whatsapp().request("getAllChats", None).await?;
/// api.whatsapp().queue("sendText", json!({ "number": "5511999999999", "text": "por fila" })).await?;
/// # Ok(())
/// # }
/// ```
WhatsAppService("whatsapp") {
/// Inicia a sessão do device. Aceita os webhooks opcionais
/// `webhook_wh_status`, `webhook_wh_message`, `webhook_wh_connect`
/// e `webhook_wh_qrcode`.
start => "start",
/// QR Code de pareamento (`response.qrcode` em base64).
qrcode => "qrcode",
/// Encerra a sessão.
logout => "logout",
/// Fecha o navegador/sessão no servidor.
close => "close",
/// Apaga a sessão no servidor.
delete_session => "deleteSession",
/// Reinicia a sessão do device.
restart_session => "restartSession",
/// Status da conexão do device.
get_connection_status => "getConnectionStatus",
/// Envia uma mensagem de texto:
/// `{"number": "5511999999999", "text": "Olá!"}`.
send_text => "sendText",
/// Envia um arquivo a partir de uma URL:
/// `{"number": ..., "path": ...}`.
send_file => "sendFile",
/// Envia um arquivo em base64.
send_file64 => "sendFile64",
/// Envia áudio por URL (convertido para mp3 pelo gateway, máx. 6 min).
send_audio => "sendAudio",
/// Envia um vídeo a partir de uma URL.
send_video => "sendVideo",
/// Envia um GIF.
send_gif => "sendGif",
/// Envia um link com preview.
send_link => "sendLink",
/// Envia uma localização: `{"number": ..., "lat": ..., "lng": ...}`.
send_location => "sendLocation",
/// Envia um contato.
send_contact => "sendContact",
/// Envia uma figurinha.
send_sticker => "sendSticker",
/// Envia uma mensagem de lista.
send_list => "sendList",
/// Envia uma mensagem com botões.
send_buttons => "sendButtons",
/// Envia uma enquete.
send_poll_message => "sendPollMessage",
/// Envia uma chave PIX.
send_pix_key => "sendPixKey",
/// Publica um texto no status.
send_text_to_storie => "sendTextToStorie",
/// Publica uma imagem no status.
send_image_to_storie => "sendImageToStorie",
/// Publica um vídeo no status.
send_video_to_storie => "sendVideoToStorie",
/// Verifica se um número tem WhatsApp.
check_number_status => "checkNumberStatus",
/// Lista as conversas do device.
get_all_chats => "getAllChats",
/// Lista os contatos do device.
get_all_contacts => "getAllContacts",
/// Lista os grupos do device.
get_all_groups => "getAllGroups",
/// Foto de perfil de um número.
get_profile_pic => "getProfilePic",
}
}