@oficialapi/sdk 1.0.0 → 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 CHANGED
@@ -1,17 +1,6 @@
1
1
  # OficialAPI SDK
2
2
 
3
- SDK oficial da OficialAPI para integração com WhatsApp, Telegram, Facebook, Instagram e WebChat. Desenvolvido em TypeScript com suporte completo a TypeScript e JavaScript.
4
-
5
- ## 🚀 Características
6
-
7
- - ✅ **100% TypeScript** - Tipos completos e IntelliSense
8
- - ✅ **Autenticação Automática** - Renovação automática de tokens
9
- - ✅ **Retry Inteligente** - Retry automático em caso de falhas
10
- - ✅ **Tratamento de Erros** - Erros formatados e informativos
11
- - ✅ **Fácil de Usar** - API intuitiva e bem documentada
12
- - ✅ **Robusto** - Testado e pronto para produção
13
- - ✅ **Rápido** - Otimizado para performance
14
- - ✅ **Seguro** - Validação e sanitização de dados
3
+ SDK oficial da OficialAPI para integração.
15
4
 
16
5
  ## 📦 Instalação
17
6
 
@@ -37,6 +26,15 @@ const sdk = new OficialAPISDK({
37
26
  });
38
27
  ```
39
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
+
40
38
  ## 📚 Exemplos de Uso
41
39
 
42
40
  ### WhatsApp
@@ -48,7 +46,7 @@ const result = await sdk.whatsapp.sendText({
48
46
  token: 'sk_live_9999999999999999999999999999',
49
47
  sender: '5511999999999',
50
48
  messageText: 'Olá! Como posso ajudar você hoje?'
51
- });
49
+ }, accessToken);
52
50
 
53
51
  console.log(result.data.messageId);
54
52
  ```
@@ -62,7 +60,7 @@ await sdk.whatsapp.sendMedia({
62
60
  fileUrl: 'https://example.com/image.jpg',
63
61
  type: 'image',
64
62
  caption: 'Veja esta imagem!'
65
- });
63
+ }, accessToken);
66
64
  ```
67
65
 
68
66
  #### Enviar Template
@@ -81,7 +79,7 @@ await sdk.whatsapp.sendTemplate({
81
79
  ]
82
80
  }
83
81
  ]
84
- });
82
+ }, accessToken);
85
83
  ```
86
84
 
87
85
  #### Enviar Botões
@@ -107,7 +105,7 @@ await sdk.whatsapp.sendButtons({
107
105
  }
108
106
  }
109
107
  ]
110
- });
108
+ }, accessToken);
111
109
  ```
112
110
 
113
111
  #### Enviar Lista Interativa
@@ -135,7 +133,7 @@ await sdk.whatsapp.sendList({
135
133
  ]
136
134
  }
137
135
  ]
138
- });
136
+ }, accessToken);
139
137
  ```
140
138
 
141
139
  #### Enviar Contato
@@ -160,7 +158,7 @@ await sdk.whatsapp.sendContact({
160
158
  ]
161
159
  }
162
160
  ]
163
- });
161
+ }, accessToken);
164
162
  ```
165
163
 
166
164
  #### Enviar Localização
@@ -173,7 +171,7 @@ await sdk.whatsapp.sendLocation({
173
171
  longitude: -46.6333,
174
172
  name: 'São Paulo',
175
173
  address: 'São Paulo, SP, Brasil'
176
- });
174
+ }, accessToken);
177
175
  ```
178
176
 
179
177
  #### Enviar Áudio
@@ -183,7 +181,7 @@ await sdk.whatsapp.sendAudio({
183
181
  token: 'sk_live_...',
184
182
  sender: '5511999999999',
185
183
  audioUrl: 'https://example.com/audio.ogg'
186
- });
184
+ }, accessToken);
187
185
  ```
188
186
 
189
187
  #### Enviar Vídeo
@@ -194,7 +192,7 @@ await sdk.whatsapp.sendVideo({
194
192
  sender: '5511999999999',
195
193
  videoUrl: 'https://example.com/video.mp4',
196
194
  caption: 'Veja este vídeo!'
197
- });
195
+ }, accessToken);
198
196
  ```
199
197
 
200
198
  #### Enviar Documento
@@ -206,7 +204,7 @@ await sdk.whatsapp.sendDocument({
206
204
  documentUrl: 'https://example.com/document.pdf',
207
205
  filename: 'documento.pdf',
208
206
  caption: 'Aqui está o documento'
209
- });
207
+ }, accessToken);
210
208
  ```
211
209
 
212
210
  #### Enviar Pedido com Opções de Pagamento
@@ -236,17 +234,17 @@ await sdk.whatsapp.sendOrderDetails({
236
234
  name: 'Cartão de Crédito'
237
235
  }
238
236
  ]
239
- });
237
+ }, accessToken);
240
238
  ```
241
239
 
242
240
  #### Gerenciar Templates
243
241
 
244
242
  ```typescript
245
243
  // Listar templates
246
- const templates = await sdk.whatsapp.listTemplates('sk_live_...');
244
+ const templates = await sdk.whatsapp.listTemplates('sk_live_...', accessToken);
247
245
 
248
246
  // Obter detalhes de um template
249
- const template = await sdk.whatsapp.getTemplate('sk_live_...', 'template_id');
247
+ const template = await sdk.whatsapp.getTemplate('sk_live_...', 'template_id', accessToken);
250
248
 
251
249
  // Criar template
252
250
  await sdk.whatsapp.createTemplate({
@@ -260,7 +258,7 @@ await sdk.whatsapp.createTemplate({
260
258
  text: 'Olá {{1}}! Bem-vindo ao nosso serviço.'
261
259
  }
262
260
  ]
263
- });
261
+ }, accessToken);
264
262
 
265
263
  // Upload de mídia para template
266
264
  const file = new File(['...'], 'image.jpg', { type: 'image/jpeg' });
@@ -268,7 +266,7 @@ await sdk.whatsapp.uploadMedia({
268
266
  token: 'sk_live_...',
269
267
  file: file,
270
268
  filename: 'image.jpg'
271
- });
269
+ }, accessToken);
272
270
  ```
273
271
 
274
272
  ### Telegram
@@ -281,7 +279,7 @@ await sdk.telegram.sendMessage({
281
279
  chatId: '123456789',
282
280
  text: 'Olá! Como posso ajudar?',
283
281
  parseMode: 'HTML'
284
- });
282
+ }, accessToken);
285
283
  ```
286
284
 
287
285
  #### Enviar Mídia
@@ -293,7 +291,7 @@ await sdk.telegram.sendMedia({
293
291
  fileUrl: 'https://example.com/image.jpg',
294
292
  type: 'photo',
295
293
  caption: 'Veja esta imagem!'
296
- });
294
+ }, accessToken);
297
295
  ```
298
296
 
299
297
  #### Enviar Botões
@@ -309,7 +307,7 @@ await sdk.telegram.sendButtons({
309
307
  { text: 'Opção 2', callback_data: 'option2' }
310
308
  ]
311
309
  ]
312
- });
310
+ }, accessToken);
313
311
  ```
314
312
 
315
313
  #### Enviar Localização
@@ -320,7 +318,7 @@ await sdk.telegram.sendLocation({
320
318
  chatId: '123456789',
321
319
  latitude: -23.5505,
322
320
  longitude: -46.6333
323
- });
321
+ }, accessToken);
324
322
  ```
325
323
 
326
324
  #### Enviar Contato
@@ -332,7 +330,7 @@ await sdk.telegram.sendContact({
332
330
  phoneNumber: '+5511999999999',
333
331
  firstName: 'João',
334
332
  lastName: 'Silva'
335
- });
333
+ }, accessToken);
336
334
  ```
337
335
 
338
336
  #### Enviar Enquete
@@ -344,7 +342,7 @@ await sdk.telegram.sendPoll({
344
342
  question: 'Qual sua cor favorita?',
345
343
  options: ['Vermelho', 'Azul', 'Verde'],
346
344
  isAnonymous: false
347
- });
345
+ }, accessToken);
348
346
  ```
349
347
 
350
348
  ### WebChat
@@ -356,7 +354,7 @@ await sdk.webchat.sendText({
356
354
  token: 'sk_live_...',
357
355
  sender: 'user123',
358
356
  messageText: 'Olá!'
359
- });
357
+ }, accessToken);
360
358
  ```
361
359
 
362
360
  #### Enviar Card
@@ -375,7 +373,7 @@ await sdk.webchat.sendCard({
375
373
  value: 'https://example.com/product'
376
374
  }
377
375
  ]
378
- });
376
+ }, accessToken);
379
377
  ```
380
378
 
381
379
  #### Enviar Formulário
@@ -400,7 +398,7 @@ await sdk.webchat.sendForm({
400
398
  }
401
399
  ],
402
400
  submitButtonText: 'Enviar'
403
- });
401
+ }, accessToken);
404
402
  ```
405
403
 
406
404
  ### Facebook
@@ -412,7 +410,7 @@ const posts = await sdk.facebook.listPosts({
412
410
  token: 'sk_live_...',
413
411
  pageId: 'page_id',
414
412
  limit: 10
415
- });
413
+ }, accessToken);
416
414
  ```
417
415
 
418
416
  #### Criar Post
@@ -423,7 +421,7 @@ await sdk.facebook.createPost({
423
421
  pageId: 'page_id',
424
422
  message: 'Novo post!',
425
423
  link: 'https://example.com'
426
- });
424
+ }, accessToken);
427
425
  ```
428
426
 
429
427
  #### Enviar Mensagem
@@ -433,7 +431,7 @@ await sdk.facebook.sendText({
433
431
  token: 'sk_live_...',
434
432
  recipientId: 'user_id',
435
433
  message: 'Olá!'
436
- });
434
+ }, accessToken);
437
435
  ```
438
436
 
439
437
  ### Instagram
@@ -445,7 +443,7 @@ await sdk.instagram.sendText({
445
443
  token: 'sk_live_...',
446
444
  recipientId: 'user_id',
447
445
  message: 'Olá!'
448
- });
446
+ }, accessToken);
449
447
  ```
450
448
 
451
449
  #### Enviar Mídia
@@ -457,7 +455,7 @@ await sdk.instagram.sendMedia({
457
455
  fileUrl: 'https://example.com/image.jpg',
458
456
  type: 'image',
459
457
  caption: 'Veja esta imagem!'
460
- });
458
+ }, accessToken);
461
459
  ```
462
460
 
463
461
  #### Enviar Resposta Privada a Comentário
@@ -467,7 +465,7 @@ await sdk.instagram.sendPrivateReply({
467
465
  token: 'sk_live_...',
468
466
  commentId: 'comment_id',
469
467
  message: 'Obrigado pelo comentário!'
470
- });
468
+ }, accessToken);
471
469
  ```
472
470
 
473
471
  ### Canais
@@ -475,7 +473,7 @@ await sdk.instagram.sendPrivateReply({
475
473
  #### Listar Canais
476
474
 
477
475
  ```typescript
478
- const channels = await sdk.channels.list();
476
+ const channels = await sdk.channels.list(accessToken);
479
477
  console.log(channels);
480
478
  ```
481
479
 
@@ -487,36 +485,18 @@ console.log(channels);
487
485
  const webhook = await sdk.integrations.createWebhook({
488
486
  url: 'https://example.com/webhook',
489
487
  expiresInDays: 365
490
- });
491
- ```
492
-
493
- ## 🔐 Autenticação
494
-
495
- O SDK gerencia automaticamente a autenticação. Quando você cria uma instância do SDK, ele automaticamente:
496
-
497
- 1. Obtém um token de acesso usando suas credenciais
498
- 2. Renova o token quando necessário
499
- 3. Adiciona o token em todas as requisições
500
-
501
- Se precisar definir um token manualmente (útil para testes):
502
-
503
- ```typescript
504
- sdk.setAccessToken('seu-token-aqui', 86400); // expiresIn em segundos
505
- ```
506
-
507
- Para limpar o token:
508
-
509
- ```typescript
510
- sdk.clearToken();
488
+ }, accessToken);
511
489
  ```
512
490
 
513
491
  ## 🛠️ Tratamento de Erros
514
492
 
515
- O SDK formata todos os erros de forma consistente:
516
-
517
493
  ```typescript
518
494
  try {
519
- await sdk.whatsapp.sendText({...});
495
+ await sdk.whatsapp.sendText({
496
+ token: 'sk_live_...',
497
+ sender: '5511999999999',
498
+ messageText: 'Olá!'
499
+ }, accessToken);
520
500
  } catch (error) {
521
501
  console.error('Erro:', error.message);
522
502
  console.error('Status:', error.status);
@@ -526,15 +506,12 @@ try {
526
506
 
527
507
  ## 📝 Tipos TypeScript
528
508
 
529
- Todos os tipos estão disponíveis para importação:
530
-
531
509
  ```typescript
532
510
  import type {
533
511
  SDKConfig,
534
512
  Channel,
535
513
  SendWhatsAppTextParams,
536
- ApiResponse,
537
- // ... outros tipos
514
+ ApiResponse
538
515
  } from '@oficialapi/sdk';
539
516
  ```
540
517
 
@@ -545,19 +522,12 @@ O SDK possui retry automático configurável:
545
522
  - **maxRetries**: Número máximo de tentativas (padrão: 3)
546
523
  - **retryDelay**: Delay entre tentativas em ms (padrão: 1000)
547
524
 
548
- O retry é aplicado automaticamente em:
549
- - Erros de rede
550
- - Erros 5xx (erros do servidor)
551
- - Timeouts
525
+ O retry é aplicado automaticamente em erros de rede, erros 5xx e timeouts.
552
526
 
553
527
  ## 📖 Documentação Completa
554
528
 
555
529
  Para mais informações, consulte a [documentação completa da API](https://api.oficialapi.com.br/api/docs).
556
530
 
557
- ## 🤝 Suporte
558
-
559
- Para suporte, entre em contato através do [painel administrativo](https://access.oficialapi.com.br) ou abra uma issue no repositório.
560
-
561
531
  ## 📄 Licença
562
532
 
563
533
  MIT