@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 +602 -2
- package/dist/index.d.mts +98 -7
- package/dist/index.d.ts +98 -7
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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
|
-
####
|
|
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
|