@oficialapi/sdk 1.0.1 → 3.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,106 @@ await sdk.whatsapp.sendOrderDetails({
226
234
  name: 'Cartão de Crédito'
227
235
  }
228
236
  ]
229
- });
237
+ }, accessToken);
238
+ ```
239
+
240
+ #### Atualizar Status do Pedido
241
+
242
+ ```typescript
243
+ await sdk.whatsapp.sendOrderStatus({
244
+ token: 'sk_live_...',
245
+ sender: '5511999999999',
246
+ orderId: 'ORDER123',
247
+ status: 'SHIPPED',
248
+ messageText: 'Seu pedido foi enviado!'
249
+ }, accessToken);
250
+ ```
251
+
252
+ #### Enviar Sticker
253
+
254
+ ```typescript
255
+ await sdk.whatsapp.sendSticker({
256
+ token: 'sk_live_...',
257
+ sender: '5511999999999',
258
+ stickerUrl: 'https://example.com/sticker.webp'
259
+ }, accessToken);
260
+ ```
261
+
262
+ #### Solicitar Localização
263
+
264
+ ```typescript
265
+ await sdk.whatsapp.sendLocationRequest({
266
+ token: 'sk_live_...',
267
+ sender: '5511999999999',
268
+ messageText: 'Por favor, compartilhe sua localização'
269
+ }, accessToken);
270
+ ```
271
+
272
+ #### Enviar Mensagem com Botão CTA URL
273
+
274
+ ```typescript
275
+ await sdk.whatsapp.sendCtaUrl({
276
+ token: 'sk_live_...',
277
+ sender: '5511999999999',
278
+ messageText: 'Confira nosso site!',
279
+ buttonText: 'Acessar',
280
+ url: 'https://example.com'
281
+ }, accessToken);
282
+ ```
283
+
284
+ #### Enviar Carrossel de Mídia
285
+
286
+ ```typescript
287
+ await sdk.whatsapp.sendMediaCarousel({
288
+ token: 'sk_live_...',
289
+ sender: '5511999999999',
290
+ cards: [
291
+ {
292
+ card_index: 0,
293
+ media: { link: 'https://example.com/image1.jpg' },
294
+ title: 'Produto 1',
295
+ description: 'Descrição do produto 1',
296
+ actions: [{ type: 'link', value: 'https://example.com/product1' }]
297
+ },
298
+ {
299
+ card_index: 1,
300
+ media: { link: 'https://example.com/image2.jpg' },
301
+ title: 'Produto 2',
302
+ description: 'Descrição do produto 2',
303
+ actions: [{ type: 'link', value: 'https://example.com/product2' }]
304
+ }
305
+ ]
306
+ }, accessToken);
307
+ ```
308
+
309
+ #### Responder Mensagem
310
+
311
+ ```typescript
312
+ await sdk.whatsapp.replyMessage({
313
+ token: 'sk_live_...',
314
+ messageId: 'wamid.xxx',
315
+ messageText: 'Esta é uma resposta!'
316
+ }, accessToken);
317
+ ```
318
+
319
+ #### Reagir a Mensagem
320
+
321
+ ```typescript
322
+ await sdk.whatsapp.reactMessage({
323
+ token: 'sk_live_...',
324
+ messageId: 'wamid.xxx',
325
+ emoji: '👍'
326
+ }, accessToken);
230
327
  ```
231
328
 
232
329
  #### Gerenciar Templates
233
330
 
234
331
  ```typescript
235
332
  // Listar templates
236
- const templates = await sdk.whatsapp.listTemplates('sk_live_...');
333
+ const templates = await sdk.whatsapp.listTemplates('sk_live_...', accessToken);
237
334
 
238
335
  // Obter detalhes de um template
239
- const template = await sdk.whatsapp.getTemplate('sk_live_...', 'template_id');
336
+ const template = await sdk.whatsapp.getTemplate('sk_live_...', 'template_id', accessToken);
240
337
 
241
338
  // Criar template
242
339
  await sdk.whatsapp.createTemplate({
@@ -250,7 +347,7 @@ await sdk.whatsapp.createTemplate({
250
347
  text: 'Olá {{1}}! Bem-vindo ao nosso serviço.'
251
348
  }
252
349
  ]
253
- });
350
+ }, accessToken);
254
351
 
255
352
  // Upload de mídia para template
256
353
  const file = new File(['...'], 'image.jpg', { type: 'image/jpeg' });
@@ -258,7 +355,7 @@ await sdk.whatsapp.uploadMedia({
258
355
  token: 'sk_live_...',
259
356
  file: file,
260
357
  filename: 'image.jpg'
261
- });
358
+ }, accessToken);
262
359
  ```
263
360
 
264
361
  ### Telegram
@@ -271,7 +368,7 @@ await sdk.telegram.sendMessage({
271
368
  chatId: '123456789',
272
369
  text: 'Olá! Como posso ajudar?',
273
370
  parseMode: 'HTML'
274
- });
371
+ }, accessToken);
275
372
  ```
276
373
 
277
374
  #### Enviar Mídia
@@ -283,7 +380,7 @@ await sdk.telegram.sendMedia({
283
380
  fileUrl: 'https://example.com/image.jpg',
284
381
  type: 'photo',
285
382
  caption: 'Veja esta imagem!'
286
- });
383
+ }, accessToken);
287
384
  ```
288
385
 
289
386
  #### Enviar Botões
@@ -299,7 +396,7 @@ await sdk.telegram.sendButtons({
299
396
  { text: 'Opção 2', callback_data: 'option2' }
300
397
  ]
301
398
  ]
302
- });
399
+ }, accessToken);
303
400
  ```
304
401
 
305
402
  #### Enviar Localização
@@ -310,7 +407,7 @@ await sdk.telegram.sendLocation({
310
407
  chatId: '123456789',
311
408
  latitude: -23.5505,
312
409
  longitude: -46.6333
313
- });
410
+ }, accessToken);
314
411
  ```
315
412
 
316
413
  #### Enviar Contato
@@ -322,7 +419,7 @@ await sdk.telegram.sendContact({
322
419
  phoneNumber: '+5511999999999',
323
420
  firstName: 'João',
324
421
  lastName: 'Silva'
325
- });
422
+ }, accessToken);
326
423
  ```
327
424
 
328
425
  #### Enviar Enquete
@@ -333,8 +430,118 @@ await sdk.telegram.sendPoll({
333
430
  chatId: '123456789',
334
431
  question: 'Qual sua cor favorita?',
335
432
  options: ['Vermelho', 'Azul', 'Verde'],
336
- isAnonymous: false
337
- });
433
+ isAnonymous: false,
434
+ type: 'quiz',
435
+ correctOptionId: 1
436
+ }, accessToken);
437
+ ```
438
+
439
+ #### Enviar Venue (Local)
440
+
441
+ ```typescript
442
+ await sdk.telegram.sendVenue({
443
+ token: 'sk_live_...',
444
+ chatId: '123456789',
445
+ latitude: -23.5505,
446
+ longitude: -46.6333,
447
+ title: 'Restaurante XYZ',
448
+ address: 'Rua ABC, 123, São Paulo'
449
+ }, accessToken);
450
+ ```
451
+
452
+ #### Enviar Dado/Emoji Animado
453
+
454
+ ```typescript
455
+ await sdk.telegram.sendDice({
456
+ token: 'sk_live_...',
457
+ chatId: '123456789',
458
+ emoji: '🎲'
459
+ }, accessToken);
460
+ ```
461
+
462
+ #### Enviar Sticker
463
+
464
+ ```typescript
465
+ await sdk.telegram.sendSticker({
466
+ token: 'sk_live_...',
467
+ chatId: '123456789',
468
+ stickerUrl: 'https://example.com/sticker.webp'
469
+ }, accessToken);
470
+ ```
471
+
472
+ #### Enviar Voz
473
+
474
+ ```typescript
475
+ await sdk.telegram.sendVoice({
476
+ token: 'sk_live_...',
477
+ chatId: '123456789',
478
+ voiceUrl: 'https://example.com/voice.ogg',
479
+ caption: 'Mensagem de voz',
480
+ duration: 30
481
+ }, accessToken);
482
+ ```
483
+
484
+ #### Enviar Video Note
485
+
486
+ ```typescript
487
+ await sdk.telegram.sendVideoNote({
488
+ token: 'sk_live_...',
489
+ chatId: '123456789',
490
+ videoNoteUrl: 'https://example.com/video_note.mp4',
491
+ duration: 10,
492
+ length: 360
493
+ }, accessToken);
494
+ ```
495
+
496
+ #### Enviar Grupo de Mídia
497
+
498
+ ```typescript
499
+ await sdk.telegram.sendMediaGroup({
500
+ token: 'sk_live_...',
501
+ chatId: '123456789',
502
+ media: [
503
+ { type: 'photo', media: 'https://example.com/image1.jpg', caption: 'Imagem 1' },
504
+ { type: 'photo', media: 'https://example.com/image2.jpg', caption: 'Imagem 2' }
505
+ ]
506
+ }, accessToken);
507
+ ```
508
+
509
+ #### Enviar Teclado de Resposta
510
+
511
+ ```typescript
512
+ await sdk.telegram.sendReplyKeyboard({
513
+ token: 'sk_live_...',
514
+ chatId: '123456789',
515
+ text: 'Escolha uma opção:',
516
+ keyboard: [
517
+ [{ text: 'Opção 1' }, { text: 'Opção 2' }],
518
+ [{ text: 'Opção 3' }]
519
+ ],
520
+ resizeKeyboard: true,
521
+ oneTimeKeyboard: true
522
+ }, accessToken);
523
+ ```
524
+
525
+ #### Editar Mensagem
526
+
527
+ ```typescript
528
+ await sdk.telegram.editMessage({
529
+ token: 'sk_live_...',
530
+ chatId: '123456789',
531
+ messageId: 123,
532
+ text: 'Mensagem editada!',
533
+ parseMode: 'HTML'
534
+ }, accessToken);
535
+ ```
536
+
537
+ #### Deletar Mensagem
538
+
539
+ ```typescript
540
+ await sdk.telegram.deleteMessage({
541
+ token: 'sk_live_...',
542
+ chatId: '123456789',
543
+ messageId: 123
544
+ }, accessToken);
338
545
  ```
339
546
 
340
547
  ### WebChat
@@ -346,7 +553,7 @@ await sdk.webchat.sendText({
346
553
  token: 'sk_live_...',
347
554
  sender: 'user123',
348
555
  messageText: 'Olá!'
349
- });
556
+ }, accessToken);
350
557
  ```
351
558
 
352
559
  #### Enviar Card
@@ -365,7 +572,46 @@ await sdk.webchat.sendCard({
365
572
  value: 'https://example.com/product'
366
573
  }
367
574
  ]
368
- });
575
+ }, accessToken);
576
+ ```
577
+
578
+ #### Enviar Mídia
579
+
580
+ ```typescript
581
+ await sdk.webchat.sendMedia({
582
+ token: 'sk_live_...',
583
+ sender: 'user123',
584
+ fileUrl: 'https://example.com/image.jpg',
585
+ type: 'image',
586
+ caption: 'Veja esta imagem!'
587
+ }, accessToken);
588
+ ```
589
+
590
+ #### Enviar Carousel
591
+
592
+ ```typescript
593
+ await sdk.webchat.sendCarousel({
594
+ token: 'sk_live_...',
595
+ sender: 'user123',
596
+ cards: [
597
+ {
598
+ title: 'Produto 1',
599
+ description: 'Descrição do produto 1',
600
+ imageUrl: 'https://example.com/product1.jpg',
601
+ buttons: [
602
+ { type: 'url', title: 'Ver Mais', value: 'https://example.com/product1' }
603
+ ]
604
+ },
605
+ {
606
+ title: 'Produto 2',
607
+ description: 'Descrição do produto 2',
608
+ imageUrl: 'https://example.com/product2.jpg',
609
+ buttons: [
610
+ { type: 'url', title: 'Ver Mais', value: 'https://example.com/product2' }
611
+ ]
612
+ }
613
+ ]
614
+ }, accessToken);
369
615
  ```
370
616
 
371
617
  #### Enviar Formulário
@@ -390,7 +636,36 @@ await sdk.webchat.sendForm({
390
636
  }
391
637
  ],
392
638
  submitButtonText: 'Enviar'
393
- });
639
+ }, accessToken);
640
+ ```
641
+
642
+ #### Enviar Quick Replies
643
+
644
+ ```typescript
645
+ await sdk.webchat.sendQuickReplies({
646
+ token: 'sk_live_...',
647
+ sender: 'user123',
648
+ messageText: 'Como podemos ajudar?',
649
+ quickReplies: [
650
+ { type: 'text', title: 'Suporte', payload: 'SUPPORT' },
651
+ { type: 'text', title: 'Vendas', payload: 'SALES' },
652
+ { type: 'location', title: 'Compartilhar Localização' }
653
+ ]
654
+ }, accessToken);
655
+ ```
656
+
657
+ #### Enviar Botões
658
+
659
+ ```typescript
660
+ await sdk.webchat.sendButtons({
661
+ token: 'sk_live_...',
662
+ sender: 'user123',
663
+ messageText: 'Escolha uma opção:',
664
+ buttons: [
665
+ { type: 'url', title: 'Visitar Site', value: 'https://example.com' },
666
+ { type: 'postback', title: 'Falar com Atendente', value: 'HUMAN_AGENT' }
667
+ ]
668
+ }, accessToken);
394
669
  ```
395
670
 
396
671
  ### Facebook
@@ -402,7 +677,7 @@ const posts = await sdk.facebook.listPosts({
402
677
  token: 'sk_live_...',
403
678
  pageId: 'page_id',
404
679
  limit: 10
405
- });
680
+ }, accessToken);
406
681
  ```
407
682
 
408
683
  #### Criar Post
@@ -413,17 +688,132 @@ await sdk.facebook.createPost({
413
688
  pageId: 'page_id',
414
689
  message: 'Novo post!',
415
690
  link: 'https://example.com'
416
- });
691
+ }, accessToken);
692
+ ```
693
+
694
+ #### Listar Comentários
695
+
696
+ ```typescript
697
+ const comments = await sdk.facebook.listComments({
698
+ token: 'sk_live_...',
699
+ postId: 'post_id',
700
+ limit: 20
701
+ }, accessToken);
702
+ ```
703
+
704
+ #### Responder Comentário
705
+
706
+ ```typescript
707
+ await sdk.facebook.replyComment({
708
+ token: 'sk_live_...',
709
+ commentId: 'comment_id',
710
+ message: 'Obrigado pelo comentário!'
711
+ }, accessToken);
417
712
  ```
418
713
 
419
- #### Enviar Mensagem
714
+ #### Deletar Comentário
715
+
716
+ ```typescript
717
+ await sdk.facebook.deleteComment({
718
+ token: 'sk_live_...',
719
+ commentId: 'comment_id'
720
+ }, accessToken);
721
+ ```
722
+
723
+ #### Enviar Mensagem de Texto
420
724
 
421
725
  ```typescript
422
726
  await sdk.facebook.sendText({
423
727
  token: 'sk_live_...',
424
728
  recipientId: 'user_id',
425
729
  message: 'Olá!'
426
- });
730
+ }, accessToken);
731
+ ```
732
+
733
+ #### Enviar Mídia
734
+
735
+ ```typescript
736
+ await sdk.facebook.sendMedia({
737
+ token: 'sk_live_...',
738
+ recipientId: 'user_id',
739
+ fileUrl: 'https://example.com/image.jpg',
740
+ type: 'image',
741
+ caption: 'Veja esta imagem!'
742
+ }, accessToken);
743
+ ```
744
+
745
+ #### Enviar Botões
746
+
747
+ ```typescript
748
+ await sdk.facebook.sendButtons({
749
+ token: 'sk_live_...',
750
+ recipientId: 'user_id',
751
+ message: 'Escolha uma opção:',
752
+ buttons: [
753
+ { type: 'web_url', title: 'Visitar Site', url: 'https://example.com' },
754
+ { type: 'postback', title: 'Opção', payload: 'OPTION_1' }
755
+ ]
756
+ }, accessToken);
757
+ ```
758
+
759
+ #### Enviar Sticker
760
+
761
+ ```typescript
762
+ await sdk.facebook.sendSticker({
763
+ token: 'sk_live_...',
764
+ recipientId: 'user_id',
765
+ stickerId: 369239263222822
766
+ }, accessToken);
767
+ ```
768
+
769
+ #### Responder Mensagem
770
+
771
+ ```typescript
772
+ await sdk.facebook.replyMessage({
773
+ token: 'sk_live_...',
774
+ messageId: 'message_id',
775
+ message: 'Esta é uma resposta!'
776
+ }, accessToken);
777
+ ```
778
+
779
+ #### Responder com Mídia
780
+
781
+ ```typescript
782
+ await sdk.facebook.replyMedia({
783
+ token: 'sk_live_...',
784
+ messageId: 'message_id',
785
+ fileUrl: 'https://example.com/image.jpg',
786
+ type: 'image',
787
+ caption: 'Aqui está!'
788
+ }, accessToken);
789
+ ```
790
+
791
+ #### Compartilhar Post do Instagram
792
+
793
+ ```typescript
794
+ await sdk.facebook.sharePost({
795
+ token: 'sk_live_...',
796
+ mediaId: 'media_id',
797
+ recipientId: 'user_id'
798
+ }, accessToken);
799
+ ```
800
+
801
+ #### Obter Perfil de Usuário
802
+
803
+ ```typescript
804
+ const userProfile = await sdk.facebook.getUserProfile({
805
+ token: 'sk_live_...',
806
+ userId: 'user_id'
807
+ }, accessToken);
808
+ ```
809
+
810
+ #### Obter Perfil de Página
811
+
812
+ ```typescript
813
+ const pageProfile = await sdk.facebook.getPageProfile({
814
+ token: 'sk_live_...',
815
+ pageId: 'page_id'
816
+ }, accessToken);
427
817
  ```
428
818
 
429
819
  ### Instagram
@@ -435,7 +825,7 @@ await sdk.instagram.sendText({
435
825
  token: 'sk_live_...',
436
826
  recipientId: 'user_id',
437
827
  message: 'Olá!'
438
- });
828
+ }, accessToken);
439
829
  ```
440
830
 
441
831
  #### Enviar Mídia
@@ -447,7 +837,7 @@ await sdk.instagram.sendMedia({
447
837
  fileUrl: 'https://example.com/image.jpg',
448
838
  type: 'image',
449
839
  caption: 'Veja esta imagem!'
450
- });
840
+ }, accessToken);
451
841
  ```
452
842
 
453
843
  #### Enviar Resposta Privada a Comentário
@@ -457,56 +847,194 @@ await sdk.instagram.sendPrivateReply({
457
847
  token: 'sk_live_...',
458
848
  commentId: 'comment_id',
459
849
  message: 'Obrigado pelo comentário!'
460
- });
850
+ }, accessToken);
461
851
  ```
462
852
 
463
- ### Canais
853
+ #### Enviar Múltiplas Imagens (Carrossel)
464
854
 
465
- #### Listar Canais
855
+ ```typescript
856
+ await sdk.instagram.sendImages({
857
+ token: 'sk_live_...',
858
+ recipientId: 'user_id',
859
+ images: [
860
+ { url: 'https://example.com/image1.jpg', caption: 'Imagem 1' },
861
+ { url: 'https://example.com/image2.jpg', caption: 'Imagem 2' },
862
+ { url: 'https://example.com/image3.jpg', caption: 'Imagem 3' }
863
+ ]
864
+ }, accessToken);
865
+ ```
866
+
867
+ #### Enviar Sticker (Like Heart)
466
868
 
467
869
  ```typescript
468
- const channels = await sdk.channels.list();
469
- console.log(channels);
870
+ await sdk.instagram.sendSticker({
871
+ token: 'sk_live_...',
872
+ recipientId: 'user_id',
873
+ stickerType: 'heart'
874
+ }, accessToken);
470
875
  ```
471
876
 
472
- ### Integrações
877
+ #### Reagir a Mensagem
473
878
 
474
- #### Criar Webhook
879
+ ```typescript
880
+ await sdk.instagram.reactMessage({
881
+ token: 'sk_live_...',
882
+ messageId: 'message_id',
883
+ reactionType: 'love'
884
+ }, accessToken);
885
+ ```
886
+
887
+ #### Remover Reação
475
888
 
476
889
  ```typescript
477
- const webhook = await sdk.integrations.createWebhook({
478
- url: 'https://example.com/webhook',
479
- expiresInDays: 365
480
- });
890
+ await sdk.instagram.removeReaction({
891
+ token: 'sk_live_...',
892
+ recipientId: 'user_id',
893
+ messageId: 'message_id'
894
+ }, accessToken);
481
895
  ```
482
896
 
483
- ## 🔐 Autenticação
897
+ #### Enviar Quick Replies
484
898
 
485
- O SDK gerencia automaticamente a autenticação. Quando você cria uma instância do SDK, ele automaticamente:
899
+ ```typescript
900
+ await sdk.instagram.sendQuickReplies({
901
+ token: 'sk_live_...',
902
+ recipientId: 'user_id',
903
+ message: 'Como podemos ajudar?',
904
+ quickReplies: [
905
+ { content_type: 'text', title: 'Suporte', payload: 'SUPPORT' },
906
+ { content_type: 'text', title: 'Vendas', payload: 'SALES' }
907
+ ]
908
+ }, accessToken);
909
+ ```
486
910
 
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
911
+ #### Enviar Template Genérico (Carrossel)
490
912
 
491
- Se precisar definir um token manualmente (útil para testes):
913
+ ```typescript
914
+ await sdk.instagram.sendGenericTemplate({
915
+ token: 'sk_live_...',
916
+ recipientId: 'user_id',
917
+ elements: [
918
+ {
919
+ title: 'Produto 1',
920
+ subtitle: 'R$ 99,90',
921
+ image_url: 'https://example.com/product1.jpg',
922
+ buttons: [
923
+ { type: 'web_url', title: 'Ver Mais', url: 'https://example.com/product1' },
924
+ { type: 'postback', title: 'Comprar', payload: 'BUY_1' }
925
+ ]
926
+ },
927
+ {
928
+ title: 'Produto 2',
929
+ subtitle: 'R$ 149,90',
930
+ image_url: 'https://example.com/product2.jpg',
931
+ buttons: [
932
+ { type: 'web_url', title: 'Ver Mais', url: 'https://example.com/product2' },
933
+ { type: 'postback', title: 'Comprar', payload: 'BUY_2' }
934
+ ]
935
+ }
936
+ ]
937
+ }, accessToken);
938
+ ```
939
+
940
+ #### Enviar Template de Botões
492
941
 
493
942
  ```typescript
494
- sdk.setAccessToken('seu-token-aqui', 86400); // expiresIn em segundos
943
+ await sdk.instagram.sendButtonTemplate({
944
+ token: 'sk_live_...',
945
+ recipientId: 'user_id',
946
+ text: 'O que você gostaria de fazer?',
947
+ buttons: [
948
+ { type: 'web_url', title: 'Visitar Site', url: 'https://example.com' },
949
+ { type: 'postback', title: 'Falar com Atendente', payload: 'HUMAN_AGENT' }
950
+ ]
951
+ }, accessToken);
495
952
  ```
496
953
 
497
- Para limpar o token:
954
+ #### Enviar Ação do Remetente (Typing, Seen)
498
955
 
499
956
  ```typescript
500
- sdk.clearToken();
957
+ // Mostrar "digitando..."
958
+ await sdk.instagram.sendSenderAction({
959
+ token: 'sk_live_...',
960
+ recipientId: 'user_id',
961
+ action: 'typing_on'
962
+ }, accessToken);
963
+
964
+ // Parar de mostrar "digitando..."
965
+ await sdk.instagram.sendSenderAction({
966
+ token: 'sk_live_...',
967
+ recipientId: 'user_id',
968
+ action: 'typing_off'
969
+ }, accessToken);
970
+
971
+ // Marcar como visualizado
972
+ await sdk.instagram.sendSenderAction({
973
+ token: 'sk_live_...',
974
+ recipientId: 'user_id',
975
+ action: 'mark_seen'
976
+ }, accessToken);
501
977
  ```
502
978
 
503
- ## 🛠️ Tratamento de Erros
979
+ #### Obter Perfil de Usuário
980
+
981
+ ```typescript
982
+ const userProfile = await sdk.instagram.getUserProfile({
983
+ token: 'sk_live_...',
984
+ userId: '17841465415913137'
985
+ }, accessToken);
986
+
987
+ console.log(userProfile.data.name);
988
+ console.log(userProfile.data.username);
989
+ console.log(userProfile.data.follower_count);
990
+ ```
991
+
992
+ #### Listar Publicações
993
+
994
+ ```typescript
995
+ const posts = await sdk.instagram.listPosts({
996
+ token: 'sk_live_...',
997
+ limit: 10
998
+ }, accessToken);
999
+ ```
1000
+
1001
+ #### Obter Perfil da Conta Comercial
1002
+
1003
+ ```typescript
1004
+ const businessProfile = await sdk.instagram.getBusinessProfile({
1005
+ token: 'sk_live_...'
1006
+ }, accessToken);
1007
+ ```
1008
+
1009
+ ### Canais
504
1010
 
505
- O SDK formata todos os erros de forma consistente:
1011
+ #### Listar Canais
1012
+
1013
+ ```typescript
1014
+ const channels = await sdk.channels.list(accessToken);
1015
+ console.log(channels);
1016
+ ```
1017
+
1018
+ ### Integrações
1019
+
1020
+ #### Criar Webhook
1021
+
1022
+ ```typescript
1023
+ const webhook = await sdk.integrations.createWebhook({
1024
+ url: 'https://example.com/webhook',
1025
+ expiresInDays: 365
1026
+ }, accessToken);
1027
+ ```
1028
+
1029
+ ## 🛠️ Tratamento de Erros
506
1030
 
507
1031
  ```typescript
508
1032
  try {
509
- await sdk.whatsapp.sendText({...});
1033
+ await sdk.whatsapp.sendText({
1034
+ token: 'sk_live_...',
1035
+ sender: '5511999999999',
1036
+ messageText: 'Olá!'
1037
+ }, accessToken);
510
1038
  } catch (error) {
511
1039
  console.error('Erro:', error.message);
512
1040
  console.error('Status:', error.status);
@@ -516,15 +1044,12 @@ try {
516
1044
 
517
1045
  ## 📝 Tipos TypeScript
518
1046
 
519
- Todos os tipos estão disponíveis para importação:
520
-
521
1047
  ```typescript
522
1048
  import type {
523
1049
  SDKConfig,
524
1050
  Channel,
525
1051
  SendWhatsAppTextParams,
526
- ApiResponse,
527
- // ... outros tipos
1052
+ ApiResponse
528
1053
  } from '@oficialapi/sdk';
529
1054
  ```
530
1055
 
@@ -535,19 +1060,12 @@ O SDK possui retry automático configurável:
535
1060
  - **maxRetries**: Número máximo de tentativas (padrão: 3)
536
1061
  - **retryDelay**: Delay entre tentativas em ms (padrão: 1000)
537
1062
 
538
- O retry é aplicado automaticamente em:
539
- - Erros de rede
540
- - Erros 5xx (erros do servidor)
541
- - Timeouts
1063
+ O retry é aplicado automaticamente em erros de rede, erros 5xx e timeouts.
542
1064
 
543
1065
  ## 📖 Documentação Completa
544
1066
 
545
1067
  Para mais informações, consulte a [documentação completa da API](https://api.oficialapi.com.br/api/docs).
546
1068
 
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
1069
  ## 📄 Licença
552
1070
 
553
1071
  MIT