@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 CHANGED
@@ -1,7 +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
-
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