@oficialapi/sdk 1.0.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -69
- package/dist/index.d.mts +225 -103
- package/dist/index.d.ts +225 -103
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# OficialAPI SDK
|
|
2
2
|
|
|
3
|
-
SDK oficial da OficialAPI para integração
|
|
4
|
-
|
|
3
|
+
SDK oficial da OficialAPI para integração.
|
|
5
4
|
|
|
6
5
|
## 📦 Instalação
|
|
7
6
|
|
|
@@ -27,6 +26,15 @@ const sdk = new OficialAPISDK({
|
|
|
27
26
|
});
|
|
28
27
|
```
|
|
29
28
|
|
|
29
|
+
## 🔐 Autenticação
|
|
30
|
+
|
|
31
|
+
Obtenha o token de acesso e passe-o em cada chamada ao SDK:
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
const tokenResponse = await sdk.auth.getToken('client-id', 'client-secret');
|
|
35
|
+
const accessToken = tokenResponse.access_token;
|
|
36
|
+
```
|
|
37
|
+
|
|
30
38
|
## 📚 Exemplos de Uso
|
|
31
39
|
|
|
32
40
|
### WhatsApp
|
|
@@ -38,7 +46,7 @@ const result = await sdk.whatsapp.sendText({
|
|
|
38
46
|
token: 'sk_live_9999999999999999999999999999',
|
|
39
47
|
sender: '5511999999999',
|
|
40
48
|
messageText: 'Olá! Como posso ajudar você hoje?'
|
|
41
|
-
});
|
|
49
|
+
}, accessToken);
|
|
42
50
|
|
|
43
51
|
console.log(result.data.messageId);
|
|
44
52
|
```
|
|
@@ -52,7 +60,7 @@ await sdk.whatsapp.sendMedia({
|
|
|
52
60
|
fileUrl: 'https://example.com/image.jpg',
|
|
53
61
|
type: 'image',
|
|
54
62
|
caption: 'Veja esta imagem!'
|
|
55
|
-
});
|
|
63
|
+
}, accessToken);
|
|
56
64
|
```
|
|
57
65
|
|
|
58
66
|
#### Enviar Template
|
|
@@ -71,7 +79,7 @@ await sdk.whatsapp.sendTemplate({
|
|
|
71
79
|
]
|
|
72
80
|
}
|
|
73
81
|
]
|
|
74
|
-
});
|
|
82
|
+
}, accessToken);
|
|
75
83
|
```
|
|
76
84
|
|
|
77
85
|
#### Enviar Botões
|
|
@@ -97,7 +105,7 @@ await sdk.whatsapp.sendButtons({
|
|
|
97
105
|
}
|
|
98
106
|
}
|
|
99
107
|
]
|
|
100
|
-
});
|
|
108
|
+
}, accessToken);
|
|
101
109
|
```
|
|
102
110
|
|
|
103
111
|
#### Enviar Lista Interativa
|
|
@@ -125,7 +133,7 @@ await sdk.whatsapp.sendList({
|
|
|
125
133
|
]
|
|
126
134
|
}
|
|
127
135
|
]
|
|
128
|
-
});
|
|
136
|
+
}, accessToken);
|
|
129
137
|
```
|
|
130
138
|
|
|
131
139
|
#### Enviar Contato
|
|
@@ -150,7 +158,7 @@ await sdk.whatsapp.sendContact({
|
|
|
150
158
|
]
|
|
151
159
|
}
|
|
152
160
|
]
|
|
153
|
-
});
|
|
161
|
+
}, accessToken);
|
|
154
162
|
```
|
|
155
163
|
|
|
156
164
|
#### Enviar Localização
|
|
@@ -163,7 +171,7 @@ await sdk.whatsapp.sendLocation({
|
|
|
163
171
|
longitude: -46.6333,
|
|
164
172
|
name: 'São Paulo',
|
|
165
173
|
address: 'São Paulo, SP, Brasil'
|
|
166
|
-
});
|
|
174
|
+
}, accessToken);
|
|
167
175
|
```
|
|
168
176
|
|
|
169
177
|
#### Enviar Áudio
|
|
@@ -173,7 +181,7 @@ await sdk.whatsapp.sendAudio({
|
|
|
173
181
|
token: 'sk_live_...',
|
|
174
182
|
sender: '5511999999999',
|
|
175
183
|
audioUrl: 'https://example.com/audio.ogg'
|
|
176
|
-
});
|
|
184
|
+
}, accessToken);
|
|
177
185
|
```
|
|
178
186
|
|
|
179
187
|
#### Enviar Vídeo
|
|
@@ -184,7 +192,7 @@ await sdk.whatsapp.sendVideo({
|
|
|
184
192
|
sender: '5511999999999',
|
|
185
193
|
videoUrl: 'https://example.com/video.mp4',
|
|
186
194
|
caption: 'Veja este vídeo!'
|
|
187
|
-
});
|
|
195
|
+
}, accessToken);
|
|
188
196
|
```
|
|
189
197
|
|
|
190
198
|
#### Enviar Documento
|
|
@@ -196,7 +204,7 @@ await sdk.whatsapp.sendDocument({
|
|
|
196
204
|
documentUrl: 'https://example.com/document.pdf',
|
|
197
205
|
filename: 'documento.pdf',
|
|
198
206
|
caption: 'Aqui está o documento'
|
|
199
|
-
});
|
|
207
|
+
}, accessToken);
|
|
200
208
|
```
|
|
201
209
|
|
|
202
210
|
#### Enviar Pedido com Opções de Pagamento
|
|
@@ -226,17 +234,17 @@ await sdk.whatsapp.sendOrderDetails({
|
|
|
226
234
|
name: 'Cartão de Crédito'
|
|
227
235
|
}
|
|
228
236
|
]
|
|
229
|
-
});
|
|
237
|
+
}, accessToken);
|
|
230
238
|
```
|
|
231
239
|
|
|
232
240
|
#### Gerenciar Templates
|
|
233
241
|
|
|
234
242
|
```typescript
|
|
235
243
|
// Listar templates
|
|
236
|
-
const templates = await sdk.whatsapp.listTemplates('sk_live_...');
|
|
244
|
+
const templates = await sdk.whatsapp.listTemplates('sk_live_...', accessToken);
|
|
237
245
|
|
|
238
246
|
// Obter detalhes de um template
|
|
239
|
-
const template = await sdk.whatsapp.getTemplate('sk_live_...', 'template_id');
|
|
247
|
+
const template = await sdk.whatsapp.getTemplate('sk_live_...', 'template_id', accessToken);
|
|
240
248
|
|
|
241
249
|
// Criar template
|
|
242
250
|
await sdk.whatsapp.createTemplate({
|
|
@@ -250,7 +258,7 @@ await sdk.whatsapp.createTemplate({
|
|
|
250
258
|
text: 'Olá {{1}}! Bem-vindo ao nosso serviço.'
|
|
251
259
|
}
|
|
252
260
|
]
|
|
253
|
-
});
|
|
261
|
+
}, accessToken);
|
|
254
262
|
|
|
255
263
|
// Upload de mídia para template
|
|
256
264
|
const file = new File(['...'], 'image.jpg', { type: 'image/jpeg' });
|
|
@@ -258,7 +266,7 @@ await sdk.whatsapp.uploadMedia({
|
|
|
258
266
|
token: 'sk_live_...',
|
|
259
267
|
file: file,
|
|
260
268
|
filename: 'image.jpg'
|
|
261
|
-
});
|
|
269
|
+
}, accessToken);
|
|
262
270
|
```
|
|
263
271
|
|
|
264
272
|
### Telegram
|
|
@@ -271,7 +279,7 @@ await sdk.telegram.sendMessage({
|
|
|
271
279
|
chatId: '123456789',
|
|
272
280
|
text: 'Olá! Como posso ajudar?',
|
|
273
281
|
parseMode: 'HTML'
|
|
274
|
-
});
|
|
282
|
+
}, accessToken);
|
|
275
283
|
```
|
|
276
284
|
|
|
277
285
|
#### Enviar Mídia
|
|
@@ -283,7 +291,7 @@ await sdk.telegram.sendMedia({
|
|
|
283
291
|
fileUrl: 'https://example.com/image.jpg',
|
|
284
292
|
type: 'photo',
|
|
285
293
|
caption: 'Veja esta imagem!'
|
|
286
|
-
});
|
|
294
|
+
}, accessToken);
|
|
287
295
|
```
|
|
288
296
|
|
|
289
297
|
#### Enviar Botões
|
|
@@ -299,7 +307,7 @@ await sdk.telegram.sendButtons({
|
|
|
299
307
|
{ text: 'Opção 2', callback_data: 'option2' }
|
|
300
308
|
]
|
|
301
309
|
]
|
|
302
|
-
});
|
|
310
|
+
}, accessToken);
|
|
303
311
|
```
|
|
304
312
|
|
|
305
313
|
#### Enviar Localização
|
|
@@ -310,7 +318,7 @@ await sdk.telegram.sendLocation({
|
|
|
310
318
|
chatId: '123456789',
|
|
311
319
|
latitude: -23.5505,
|
|
312
320
|
longitude: -46.6333
|
|
313
|
-
});
|
|
321
|
+
}, accessToken);
|
|
314
322
|
```
|
|
315
323
|
|
|
316
324
|
#### Enviar Contato
|
|
@@ -322,7 +330,7 @@ await sdk.telegram.sendContact({
|
|
|
322
330
|
phoneNumber: '+5511999999999',
|
|
323
331
|
firstName: 'João',
|
|
324
332
|
lastName: 'Silva'
|
|
325
|
-
});
|
|
333
|
+
}, accessToken);
|
|
326
334
|
```
|
|
327
335
|
|
|
328
336
|
#### Enviar Enquete
|
|
@@ -334,7 +342,7 @@ await sdk.telegram.sendPoll({
|
|
|
334
342
|
question: 'Qual sua cor favorita?',
|
|
335
343
|
options: ['Vermelho', 'Azul', 'Verde'],
|
|
336
344
|
isAnonymous: false
|
|
337
|
-
});
|
|
345
|
+
}, accessToken);
|
|
338
346
|
```
|
|
339
347
|
|
|
340
348
|
### WebChat
|
|
@@ -346,7 +354,7 @@ await sdk.webchat.sendText({
|
|
|
346
354
|
token: 'sk_live_...',
|
|
347
355
|
sender: 'user123',
|
|
348
356
|
messageText: 'Olá!'
|
|
349
|
-
});
|
|
357
|
+
}, accessToken);
|
|
350
358
|
```
|
|
351
359
|
|
|
352
360
|
#### Enviar Card
|
|
@@ -365,7 +373,7 @@ await sdk.webchat.sendCard({
|
|
|
365
373
|
value: 'https://example.com/product'
|
|
366
374
|
}
|
|
367
375
|
]
|
|
368
|
-
});
|
|
376
|
+
}, accessToken);
|
|
369
377
|
```
|
|
370
378
|
|
|
371
379
|
#### Enviar Formulário
|
|
@@ -390,7 +398,7 @@ await sdk.webchat.sendForm({
|
|
|
390
398
|
}
|
|
391
399
|
],
|
|
392
400
|
submitButtonText: 'Enviar'
|
|
393
|
-
});
|
|
401
|
+
}, accessToken);
|
|
394
402
|
```
|
|
395
403
|
|
|
396
404
|
### Facebook
|
|
@@ -402,7 +410,7 @@ const posts = await sdk.facebook.listPosts({
|
|
|
402
410
|
token: 'sk_live_...',
|
|
403
411
|
pageId: 'page_id',
|
|
404
412
|
limit: 10
|
|
405
|
-
});
|
|
413
|
+
}, accessToken);
|
|
406
414
|
```
|
|
407
415
|
|
|
408
416
|
#### Criar Post
|
|
@@ -413,7 +421,7 @@ await sdk.facebook.createPost({
|
|
|
413
421
|
pageId: 'page_id',
|
|
414
422
|
message: 'Novo post!',
|
|
415
423
|
link: 'https://example.com'
|
|
416
|
-
});
|
|
424
|
+
}, accessToken);
|
|
417
425
|
```
|
|
418
426
|
|
|
419
427
|
#### Enviar Mensagem
|
|
@@ -423,7 +431,7 @@ await sdk.facebook.sendText({
|
|
|
423
431
|
token: 'sk_live_...',
|
|
424
432
|
recipientId: 'user_id',
|
|
425
433
|
message: 'Olá!'
|
|
426
|
-
});
|
|
434
|
+
}, accessToken);
|
|
427
435
|
```
|
|
428
436
|
|
|
429
437
|
### Instagram
|
|
@@ -435,7 +443,7 @@ await sdk.instagram.sendText({
|
|
|
435
443
|
token: 'sk_live_...',
|
|
436
444
|
recipientId: 'user_id',
|
|
437
445
|
message: 'Olá!'
|
|
438
|
-
});
|
|
446
|
+
}, accessToken);
|
|
439
447
|
```
|
|
440
448
|
|
|
441
449
|
#### Enviar Mídia
|
|
@@ -447,7 +455,7 @@ await sdk.instagram.sendMedia({
|
|
|
447
455
|
fileUrl: 'https://example.com/image.jpg',
|
|
448
456
|
type: 'image',
|
|
449
457
|
caption: 'Veja esta imagem!'
|
|
450
|
-
});
|
|
458
|
+
}, accessToken);
|
|
451
459
|
```
|
|
452
460
|
|
|
453
461
|
#### Enviar Resposta Privada a Comentário
|
|
@@ -457,7 +465,7 @@ await sdk.instagram.sendPrivateReply({
|
|
|
457
465
|
token: 'sk_live_...',
|
|
458
466
|
commentId: 'comment_id',
|
|
459
467
|
message: 'Obrigado pelo comentário!'
|
|
460
|
-
});
|
|
468
|
+
}, accessToken);
|
|
461
469
|
```
|
|
462
470
|
|
|
463
471
|
### Canais
|
|
@@ -465,7 +473,7 @@ await sdk.instagram.sendPrivateReply({
|
|
|
465
473
|
#### Listar Canais
|
|
466
474
|
|
|
467
475
|
```typescript
|
|
468
|
-
const channels = await sdk.channels.list();
|
|
476
|
+
const channels = await sdk.channels.list(accessToken);
|
|
469
477
|
console.log(channels);
|
|
470
478
|
```
|
|
471
479
|
|
|
@@ -477,36 +485,18 @@ console.log(channels);
|
|
|
477
485
|
const webhook = await sdk.integrations.createWebhook({
|
|
478
486
|
url: 'https://example.com/webhook',
|
|
479
487
|
expiresInDays: 365
|
|
480
|
-
});
|
|
481
|
-
```
|
|
482
|
-
|
|
483
|
-
## 🔐 Autenticação
|
|
484
|
-
|
|
485
|
-
O SDK gerencia automaticamente a autenticação. Quando você cria uma instância do SDK, ele automaticamente:
|
|
486
|
-
|
|
487
|
-
1. Obtém um token de acesso usando suas credenciais
|
|
488
|
-
2. Renova o token quando necessário
|
|
489
|
-
3. Adiciona o token em todas as requisições
|
|
490
|
-
|
|
491
|
-
Se precisar definir um token manualmente (útil para testes):
|
|
492
|
-
|
|
493
|
-
```typescript
|
|
494
|
-
sdk.setAccessToken('seu-token-aqui', 86400); // expiresIn em segundos
|
|
495
|
-
```
|
|
496
|
-
|
|
497
|
-
Para limpar o token:
|
|
498
|
-
|
|
499
|
-
```typescript
|
|
500
|
-
sdk.clearToken();
|
|
488
|
+
}, accessToken);
|
|
501
489
|
```
|
|
502
490
|
|
|
503
491
|
## 🛠️ Tratamento de Erros
|
|
504
492
|
|
|
505
|
-
O SDK formata todos os erros de forma consistente:
|
|
506
|
-
|
|
507
493
|
```typescript
|
|
508
494
|
try {
|
|
509
|
-
await sdk.whatsapp.sendText({
|
|
495
|
+
await sdk.whatsapp.sendText({
|
|
496
|
+
token: 'sk_live_...',
|
|
497
|
+
sender: '5511999999999',
|
|
498
|
+
messageText: 'Olá!'
|
|
499
|
+
}, accessToken);
|
|
510
500
|
} catch (error) {
|
|
511
501
|
console.error('Erro:', error.message);
|
|
512
502
|
console.error('Status:', error.status);
|
|
@@ -516,15 +506,12 @@ try {
|
|
|
516
506
|
|
|
517
507
|
## 📝 Tipos TypeScript
|
|
518
508
|
|
|
519
|
-
Todos os tipos estão disponíveis para importação:
|
|
520
|
-
|
|
521
509
|
```typescript
|
|
522
510
|
import type {
|
|
523
511
|
SDKConfig,
|
|
524
512
|
Channel,
|
|
525
513
|
SendWhatsAppTextParams,
|
|
526
|
-
ApiResponse
|
|
527
|
-
// ... outros tipos
|
|
514
|
+
ApiResponse
|
|
528
515
|
} from '@oficialapi/sdk';
|
|
529
516
|
```
|
|
530
517
|
|
|
@@ -535,19 +522,12 @@ O SDK possui retry automático configurável:
|
|
|
535
522
|
- **maxRetries**: Número máximo de tentativas (padrão: 3)
|
|
536
523
|
- **retryDelay**: Delay entre tentativas em ms (padrão: 1000)
|
|
537
524
|
|
|
538
|
-
O retry é aplicado automaticamente em
|
|
539
|
-
- Erros de rede
|
|
540
|
-
- Erros 5xx (erros do servidor)
|
|
541
|
-
- Timeouts
|
|
525
|
+
O retry é aplicado automaticamente em erros de rede, erros 5xx e timeouts.
|
|
542
526
|
|
|
543
527
|
## 📖 Documentação Completa
|
|
544
528
|
|
|
545
529
|
Para mais informações, consulte a [documentação completa da API](https://api.oficialapi.com.br/api/docs).
|
|
546
530
|
|
|
547
|
-
## 🤝 Suporte
|
|
548
|
-
|
|
549
|
-
Para suporte, entre em contato através do [painel administrativo](https://access.oficialapi.com.br) ou abra uma issue no repositório.
|
|
550
|
-
|
|
551
531
|
## 📄 Licença
|
|
552
532
|
|
|
553
533
|
MIT
|