@oficialapi/sdk 2.0.0 → 4.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
@@ -237,6 +237,110 @@ await sdk.whatsapp.sendOrderDetails({
237
237
  }, accessToken);
238
238
  ```
239
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
+ #### Baixar Mídia Descriptografada
310
+
311
+ ```typescript
312
+ const media = await sdk.whatsapp.downloadMedia({
313
+ token: 'sk_live_...',
314
+ url: 'https://lookaside.fbsbx.com/whatsapp_business/attachment/?mid=...'
315
+ }, accessToken);
316
+
317
+ // A mídia retorna em base64
318
+ console.log(media.data.buffer); // Base64 string
319
+ console.log(media.data.mimeType); // image/jpeg, video/mp4, etc.
320
+ console.log(media.data.filename); // Nome do arquivo
321
+ console.log(media.data.size); // Tamanho em bytes
322
+ ```
323
+
324
+ #### Responder Mensagem
325
+
326
+ ```typescript
327
+ await sdk.whatsapp.replyMessage({
328
+ token: 'sk_live_...',
329
+ messageId: 'wamid.xxx',
330
+ messageText: 'Esta é uma resposta!'
331
+ }, accessToken);
332
+ ```
333
+
334
+ #### Reagir a Mensagem
335
+
336
+ ```typescript
337
+ await sdk.whatsapp.reactMessage({
338
+ token: 'sk_live_...',
339
+ messageId: 'wamid.xxx',
340
+ emoji: '👍'
341
+ }, accessToken);
342
+ ```
343
+
240
344
  #### Gerenciar Templates
241
345
 
242
346
  ```typescript
@@ -341,10 +445,137 @@ await sdk.telegram.sendPoll({
341
445
  chatId: '123456789',
342
446
  question: 'Qual sua cor favorita?',
343
447
  options: ['Vermelho', 'Azul', 'Verde'],
344
- isAnonymous: false
448
+ isAnonymous: false,
449
+ type: 'quiz',
450
+ correctOptionId: 1
451
+ }, accessToken);
452
+ ```
453
+
454
+ #### Enviar Venue (Local)
455
+
456
+ ```typescript
457
+ await sdk.telegram.sendVenue({
458
+ token: 'sk_live_...',
459
+ chatId: '123456789',
460
+ latitude: -23.5505,
461
+ longitude: -46.6333,
462
+ title: 'Restaurante XYZ',
463
+ address: 'Rua ABC, 123, São Paulo'
464
+ }, accessToken);
465
+ ```
466
+
467
+ #### Enviar Dado/Emoji Animado
468
+
469
+ ```typescript
470
+ await sdk.telegram.sendDice({
471
+ token: 'sk_live_...',
472
+ chatId: '123456789',
473
+ emoji: '🎲'
345
474
  }, accessToken);
346
475
  ```
347
476
 
477
+ #### Enviar Sticker
478
+
479
+ ```typescript
480
+ await sdk.telegram.sendSticker({
481
+ token: 'sk_live_...',
482
+ chatId: '123456789',
483
+ stickerUrl: 'https://example.com/sticker.webp'
484
+ }, accessToken);
485
+ ```
486
+
487
+ #### Enviar Voz
488
+
489
+ ```typescript
490
+ await sdk.telegram.sendVoice({
491
+ token: 'sk_live_...',
492
+ chatId: '123456789',
493
+ voiceUrl: 'https://example.com/voice.ogg',
494
+ caption: 'Mensagem de voz',
495
+ duration: 30
496
+ }, accessToken);
497
+ ```
498
+
499
+ #### Enviar Video Note
500
+
501
+ ```typescript
502
+ await sdk.telegram.sendVideoNote({
503
+ token: 'sk_live_...',
504
+ chatId: '123456789',
505
+ videoNoteUrl: 'https://example.com/video_note.mp4',
506
+ duration: 10,
507
+ length: 360
508
+ }, accessToken);
509
+ ```
510
+
511
+ #### Enviar Grupo de Mídia
512
+
513
+ ```typescript
514
+ await sdk.telegram.sendMediaGroup({
515
+ token: 'sk_live_...',
516
+ chatId: '123456789',
517
+ media: [
518
+ { type: 'photo', media: 'https://example.com/image1.jpg', caption: 'Imagem 1' },
519
+ { type: 'photo', media: 'https://example.com/image2.jpg', caption: 'Imagem 2' }
520
+ ]
521
+ }, accessToken);
522
+ ```
523
+
524
+ #### Enviar Teclado de Resposta
525
+
526
+ ```typescript
527
+ await sdk.telegram.sendReplyKeyboard({
528
+ token: 'sk_live_...',
529
+ chatId: '123456789',
530
+ text: 'Escolha uma opção:',
531
+ keyboard: [
532
+ [{ text: 'Opção 1' }, { text: 'Opção 2' }],
533
+ [{ text: 'Opção 3' }]
534
+ ],
535
+ resizeKeyboard: true,
536
+ oneTimeKeyboard: true
537
+ }, accessToken);
538
+ ```
539
+
540
+ #### Editar Mensagem
541
+
542
+ ```typescript
543
+ await sdk.telegram.editMessage({
544
+ token: 'sk_live_...',
545
+ chatId: '123456789',
546
+ messageId: 123,
547
+ text: 'Mensagem editada!',
548
+ parseMode: 'HTML'
549
+ }, accessToken);
550
+ ```
551
+
552
+ #### Deletar Mensagem
553
+
554
+ ```typescript
555
+ await sdk.telegram.deleteMessage({
556
+ token: 'sk_live_...',
557
+ chatId: '123456789',
558
+ messageId: 123
559
+ }, accessToken);
560
+ ```
561
+
562
+ #### Baixar Mídia Descriptografada
563
+
564
+ ```typescript
565
+
566
+
567
+ const media = await sdk.telegram.downloadMedia({
568
+ token: 'sk_live_...',
569
+ fileId: 'AgACAgEAAxkBAAItNmlmklyYNCEtvaFphVfSSO7CrEOjAALUC2sbh9owR9hT7MhQnTGfAQADAgADcwADOAQ'
570
+ }, accessToken);
571
+
572
+ // A mídia retorna em base64
573
+ console.log(media.data.buffer); // Base64 string
574
+ console.log(media.data.mimeType); // image/jpeg, video/mp4, etc.
575
+ console.log(media.data.filename); // Nome do arquivo
576
+ console.log(media.data.size); // Tamanho em bytes
577
+ ```
578
+
348
579
  ### WebChat
349
580
 
350
581
  #### Enviar Mensagem de Texto
@@ -376,6 +607,45 @@ await sdk.webchat.sendCard({
376
607
  }, accessToken);
377
608
  ```
378
609
 
610
+ #### Enviar Mídia
611
+
612
+ ```typescript
613
+ await sdk.webchat.sendMedia({
614
+ token: 'sk_live_...',
615
+ sender: 'user123',
616
+ fileUrl: 'https://example.com/image.jpg',
617
+ type: 'image',
618
+ caption: 'Veja esta imagem!'
619
+ }, accessToken);
620
+ ```
621
+
622
+ #### Enviar Carousel
623
+
624
+ ```typescript
625
+ await sdk.webchat.sendCarousel({
626
+ token: 'sk_live_...',
627
+ sender: 'user123',
628
+ cards: [
629
+ {
630
+ title: 'Produto 1',
631
+ description: 'Descrição do produto 1',
632
+ imageUrl: 'https://example.com/product1.jpg',
633
+ buttons: [
634
+ { type: 'url', title: 'Ver Mais', value: 'https://example.com/product1' }
635
+ ]
636
+ },
637
+ {
638
+ title: 'Produto 2',
639
+ description: 'Descrição do produto 2',
640
+ imageUrl: 'https://example.com/product2.jpg',
641
+ buttons: [
642
+ { type: 'url', title: 'Ver Mais', value: 'https://example.com/product2' }
643
+ ]
644
+ }
645
+ ]
646
+ }, accessToken);
647
+ ```
648
+
379
649
  #### Enviar Formulário
380
650
 
381
651
  ```typescript
@@ -401,6 +671,35 @@ await sdk.webchat.sendForm({
401
671
  }, accessToken);
402
672
  ```
403
673
 
674
+ #### Enviar Quick Replies
675
+
676
+ ```typescript
677
+ await sdk.webchat.sendQuickReplies({
678
+ token: 'sk_live_...',
679
+ sender: 'user123',
680
+ messageText: 'Como podemos ajudar?',
681
+ quickReplies: [
682
+ { type: 'text', title: 'Suporte', payload: 'SUPPORT' },
683
+ { type: 'text', title: 'Vendas', payload: 'SALES' },
684
+ { type: 'location', title: 'Compartilhar Localização' }
685
+ ]
686
+ }, accessToken);
687
+ ```
688
+
689
+ #### Enviar Botões
690
+
691
+ ```typescript
692
+ await sdk.webchat.sendButtons({
693
+ token: 'sk_live_...',
694
+ sender: 'user123',
695
+ messageText: 'Escolha uma opção:',
696
+ buttons: [
697
+ { type: 'url', title: 'Visitar Site', value: 'https://example.com' },
698
+ { type: 'postback', title: 'Falar com Atendente', value: 'HUMAN_AGENT' }
699
+ ]
700
+ }, accessToken);
701
+ ```
702
+
404
703
  ### Facebook
405
704
 
406
705
  #### Listar Posts
@@ -424,7 +723,36 @@ await sdk.facebook.createPost({
424
723
  }, accessToken);
425
724
  ```
426
725
 
427
- #### Enviar Mensagem
726
+ #### Listar Comentários
727
+
728
+ ```typescript
729
+ const comments = await sdk.facebook.listComments({
730
+ token: 'sk_live_...',
731
+ postId: 'post_id',
732
+ limit: 20
733
+ }, accessToken);
734
+ ```
735
+
736
+ #### Responder Comentário
737
+
738
+ ```typescript
739
+ await sdk.facebook.replyComment({
740
+ token: 'sk_live_...',
741
+ commentId: 'comment_id',
742
+ message: 'Obrigado pelo comentário!'
743
+ }, accessToken);
744
+ ```
745
+
746
+ #### Deletar Comentário
747
+
748
+ ```typescript
749
+ await sdk.facebook.deleteComment({
750
+ token: 'sk_live_...',
751
+ commentId: 'comment_id'
752
+ }, accessToken);
753
+ ```
754
+
755
+ #### Enviar Mensagem de Texto
428
756
 
429
757
  ```typescript
430
758
  await sdk.facebook.sendText({
@@ -434,6 +762,107 @@ await sdk.facebook.sendText({
434
762
  }, accessToken);
435
763
  ```
436
764
 
765
+ #### Enviar Mídia
766
+
767
+ ```typescript
768
+ await sdk.facebook.sendMedia({
769
+ token: 'sk_live_...',
770
+ recipientId: 'user_id',
771
+ fileUrl: 'https://example.com/image.jpg',
772
+ type: 'image',
773
+ caption: 'Veja esta imagem!'
774
+ }, accessToken);
775
+ ```
776
+
777
+ #### Enviar Botões
778
+
779
+ ```typescript
780
+ await sdk.facebook.sendButtons({
781
+ token: 'sk_live_...',
782
+ recipientId: 'user_id',
783
+ message: 'Escolha uma opção:',
784
+ buttons: [
785
+ { type: 'web_url', title: 'Visitar Site', url: 'https://example.com' },
786
+ { type: 'postback', title: 'Opção', payload: 'OPTION_1' }
787
+ ]
788
+ }, accessToken);
789
+ ```
790
+
791
+ #### Enviar Sticker
792
+
793
+ ```typescript
794
+ await sdk.facebook.sendSticker({
795
+ token: 'sk_live_...',
796
+ recipientId: 'user_id',
797
+ stickerId: 369239263222822
798
+ }, accessToken);
799
+ ```
800
+
801
+ #### Responder Mensagem
802
+
803
+ ```typescript
804
+ await sdk.facebook.replyMessage({
805
+ token: 'sk_live_...',
806
+ messageId: 'message_id',
807
+ message: 'Esta é uma resposta!'
808
+ }, accessToken);
809
+ ```
810
+
811
+ #### Responder com Mídia
812
+
813
+ ```typescript
814
+ await sdk.facebook.replyMedia({
815
+ token: 'sk_live_...',
816
+ messageId: 'message_id',
817
+ fileUrl: 'https://example.com/image.jpg',
818
+ type: 'image',
819
+ caption: 'Aqui está!'
820
+ }, accessToken);
821
+ ```
822
+
823
+ #### Compartilhar Post do Instagram
824
+
825
+ ```typescript
826
+ await sdk.facebook.sharePost({
827
+ token: 'sk_live_...',
828
+ mediaId: 'media_id',
829
+ recipientId: 'user_id'
830
+ }, accessToken);
831
+ ```
832
+
833
+ #### Obter Perfil de Usuário
834
+
835
+ ```typescript
836
+ const userProfile = await sdk.facebook.getUserProfile({
837
+ token: 'sk_live_...',
838
+ userId: 'user_id'
839
+ }, accessToken);
840
+ ```
841
+
842
+ #### Obter Perfil de Página
843
+
844
+ ```typescript
845
+ const pageProfile = await sdk.facebook.getPageProfile({
846
+ token: 'sk_live_...',
847
+ pageId: 'page_id'
848
+ }, accessToken);
849
+ ```
850
+
851
+ #### Baixar Mídia Descriptografada
852
+
853
+ ```typescript
854
+ const media = await sdk.facebook.downloadMedia({
855
+ token: 'sk_live_...',
856
+ url: 'https://lookaside.fbsbx.com/ig_messaging_cdn/...'
857
+ }, accessToken);
858
+
859
+ // A mídia retorna em base64
860
+ console.log(media.data.buffer); // Base64 string
861
+ console.log(media.data.mimeType); // image/jpeg, video/mp4, etc.
862
+ console.log(media.data.filename); // Nome do arquivo
863
+ console.log(media.data.size); // Tamanho em bytes
864
+ ```
865
+
437
866
  ### Instagram
438
867
 
439
868
  #### Enviar Mensagem de Texto
@@ -468,6 +897,177 @@ await sdk.instagram.sendPrivateReply({
468
897
  }, accessToken);
469
898
  ```
470
899
 
900
+ #### Enviar Múltiplas Imagens (Carrossel)
901
+
902
+ ```typescript
903
+ await sdk.instagram.sendImages({
904
+ token: 'sk_live_...',
905
+ recipientId: 'user_id',
906
+ images: [
907
+ { url: 'https://example.com/image1.jpg', caption: 'Imagem 1' },
908
+ { url: 'https://example.com/image2.jpg', caption: 'Imagem 2' },
909
+ { url: 'https://example.com/image3.jpg', caption: 'Imagem 3' }
910
+ ]
911
+ }, accessToken);
912
+ ```
913
+
914
+ #### Enviar Sticker (Like Heart)
915
+
916
+ ```typescript
917
+ await sdk.instagram.sendSticker({
918
+ token: 'sk_live_...',
919
+ recipientId: 'user_id',
920
+ stickerType: 'heart'
921
+ }, accessToken);
922
+ ```
923
+
924
+ #### Reagir a Mensagem
925
+
926
+ ```typescript
927
+ await sdk.instagram.reactMessage({
928
+ token: 'sk_live_...',
929
+ messageId: 'message_id',
930
+ reactionType: 'love'
931
+ }, accessToken);
932
+ ```
933
+
934
+ #### Remover Reação
935
+
936
+ ```typescript
937
+ await sdk.instagram.removeReaction({
938
+ token: 'sk_live_...',
939
+ recipientId: 'user_id',
940
+ messageId: 'message_id'
941
+ }, accessToken);
942
+ ```
943
+
944
+ #### Enviar Quick Replies
945
+
946
+ ```typescript
947
+ await sdk.instagram.sendQuickReplies({
948
+ token: 'sk_live_...',
949
+ recipientId: 'user_id',
950
+ message: 'Como podemos ajudar?',
951
+ quickReplies: [
952
+ { content_type: 'text', title: 'Suporte', payload: 'SUPPORT' },
953
+ { content_type: 'text', title: 'Vendas', payload: 'SALES' }
954
+ ]
955
+ }, accessToken);
956
+ ```
957
+
958
+ #### Enviar Template Genérico (Carrossel)
959
+
960
+ ```typescript
961
+ await sdk.instagram.sendGenericTemplate({
962
+ token: 'sk_live_...',
963
+ recipientId: 'user_id',
964
+ elements: [
965
+ {
966
+ title: 'Produto 1',
967
+ subtitle: 'R$ 99,90',
968
+ image_url: 'https://example.com/product1.jpg',
969
+ buttons: [
970
+ { type: 'web_url', title: 'Ver Mais', url: 'https://example.com/product1' },
971
+ { type: 'postback', title: 'Comprar', payload: 'BUY_1' }
972
+ ]
973
+ },
974
+ {
975
+ title: 'Produto 2',
976
+ subtitle: 'R$ 149,90',
977
+ image_url: 'https://example.com/product2.jpg',
978
+ buttons: [
979
+ { type: 'web_url', title: 'Ver Mais', url: 'https://example.com/product2' },
980
+ { type: 'postback', title: 'Comprar', payload: 'BUY_2' }
981
+ ]
982
+ }
983
+ ]
984
+ }, accessToken);
985
+ ```
986
+
987
+ #### Enviar Template de Botões
988
+
989
+ ```typescript
990
+ await sdk.instagram.sendButtonTemplate({
991
+ token: 'sk_live_...',
992
+ recipientId: 'user_id',
993
+ text: 'O que você gostaria de fazer?',
994
+ buttons: [
995
+ { type: 'web_url', title: 'Visitar Site', url: 'https://example.com' },
996
+ { type: 'postback', title: 'Falar com Atendente', payload: 'HUMAN_AGENT' }
997
+ ]
998
+ }, accessToken);
999
+ ```
1000
+
1001
+ #### Enviar Ação do Remetente (Typing, Seen)
1002
+
1003
+ ```typescript
1004
+ // Mostrar "digitando..."
1005
+ await sdk.instagram.sendSenderAction({
1006
+ token: 'sk_live_...',
1007
+ recipientId: 'user_id',
1008
+ action: 'typing_on'
1009
+ }, accessToken);
1010
+
1011
+ // Parar de mostrar "digitando..."
1012
+ await sdk.instagram.sendSenderAction({
1013
+ token: 'sk_live_...',
1014
+ recipientId: 'user_id',
1015
+ action: 'typing_off'
1016
+ }, accessToken);
1017
+
1018
+ // Marcar como visualizado
1019
+ await sdk.instagram.sendSenderAction({
1020
+ token: 'sk_live_...',
1021
+ recipientId: 'user_id',
1022
+ action: 'mark_seen'
1023
+ }, accessToken);
1024
+ ```
1025
+
1026
+ #### Obter Perfil de Usuário
1027
+
1028
+ ```typescript
1029
+ const userProfile = await sdk.instagram.getUserProfile({
1030
+ token: 'sk_live_...',
1031
+ userId: '17841465415913137'
1032
+ }, accessToken);
1033
+
1034
+ console.log(userProfile.data.name);
1035
+ console.log(userProfile.data.username);
1036
+ console.log(userProfile.data.follower_count);
1037
+ ```
1038
+
1039
+ #### Listar Publicações
1040
+
1041
+ ```typescript
1042
+ const posts = await sdk.instagram.listPosts({
1043
+ token: 'sk_live_...',
1044
+ limit: 10
1045
+ }, accessToken);
1046
+ ```
1047
+
1048
+ #### Obter Perfil da Conta Comercial
1049
+
1050
+ ```typescript
1051
+ const businessProfile = await sdk.instagram.getBusinessProfile({
1052
+ token: 'sk_live_...'
1053
+ }, accessToken);
1054
+ ```
1055
+
1056
+ #### Baixar Mídia Descriptografada
1057
+
1058
+ ```typescript
1059
+ const media = await sdk.instagram.downloadMedia({
1060
+ token: 'sk_live_...',
1061
+ url: 'https://lookaside.fbsbx.com/ig_messaging_cdn/...'
1062
+ }, accessToken);
1063
+
1064
+ // A mídia retorna em base64
1065
+ console.log(media.data.buffer); // Base64 string
1066
+ console.log(media.data.mimeType); // image/jpeg, video/mp4, etc.
1067
+ console.log(media.data.filename); // Nome do arquivo
1068
+ console.log(media.data.size); // Tamanho em bytes
1069
+ ```
1070
+
471
1071
  ### Canais
472
1072
 
473
1073
  #### Listar Canais