Jump to content
Suebersson

Envio de imagem no WhatsApp Web via JS

Recommended Posts

Oi pessoal tudo bem, eu gostaria que alguém me ajudasse numa questão sobre a execução do código baixo.

O código funciona bem sem nenhum problema quando é inserido e executado dentro do console, mais quando tento executa-lo de dentro de um extensão do Chrome gerar erros.

O erro é gerado na linha: const id = _.uniqueId("fakeModule_");

Erro: Uncaught (in promise) ReferenceError: _ is not defined

 

O objetivo desse código enviar imagens no WhatsApp Web, mas só funciona no console.

 

Estou aberto também a outras formas de envios de imagem se alguém conhecer usando Js ou se alguém saber como fazer um upload de uma imagem em um input accept do tipo file via código.

 

Referência do código: https://gist.github.com/phpRajat/a6422922efae32914f4dbd1082f3f412

Código:

 

//$$$$$$$$$$$     Parâmetros     $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

var Destinatario = '5521965454193@c.us'; // número do destinatário (O chat do destinatário tem que esta ativo)

var Image_base64 = 'data:image/png;base64,iVBORw0KGgoAAA...';

var Legenda = 'Texto legenda';

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

 

var Store = {};

var createFromData_id = 0;

var prepareRawMedia_id = 0;

var store_id = 0;

var send_media;

var file = "";

var createFromDataClass;

var prepareRawMediaClass;

 

 

 

Set_modulos();

setTimeout(function(){init();},1000);

 

 

function Set_modulos(){

 

                console.clear();

 

                var modules = getAllModules()._value;

 

                function getAllModules() {

 

                               return new Promise((resolve) => {

                                               const id = _.uniqueId("fakeModule_");

 

                                               window["webpackJsonp"](

                                                               [],

                                                               {

                                                                              [id]: function(module, exports, __webpack_require__) {

                                                                                              resolve(__webpack_require__.c);

                                                                              }

                                                               },

                                                               [id]

                                               );

                               });

                }

 

                for (var key in modules) {

 

                               if (modules[key].exports) {

                                               if (modules[key].exports.createFromData) {

                                                               createFromData_id = modules[key].id.replace(/"/g, '"');

                                               }

                                               if (modules[key].exports.prepRawMedia) {

                                                               prepareRawMedia_id = modules[key].id.replace(/"/g, '"');

                                               }

                                               if (modules[key].exports.default) {

                                                               if (modules[key].exports.default.Wap) {

                                                                              store_id = modules[key].id.replace(/"/g, '"');

                                                               }

                                               }

                               }

                }             

}

 

function _requireById(id) {

                return webpackJsonp([], null, [id]);

}

 

function fixBinary (bin) {

 

                var length = bin.length;

                var buf = new ArrayBuffer(length);

                var arr = new Uint8Array(buf);

                for (var i = 0; i < length; i++) {

                  arr = bin.charCodeAt(i);

                }

                return buf;

}

 

window.send_media = function(jid, link, caption, msg_id, content_type) {

 

                file = "";

                createFromDataClass = _requireById(createFromData_id)["default"];

                prepareRawMediaClass = _requireById(prepareRawMedia_id).prepRawMedia;

               

                window.Store.Chat.find(jid).then((chat) => {

                               chat.markComposing();

                              

                               var img_b64 = link;

                               var base64 = img_b64.split(',')[1];

                               var type = img_b64.split(',')[0];

                              

                               type = type.split(';')[0];

                               type = type.split(':')[1];

                              

                               var binary = fixBinary(atob(base64));

                               var blob = new Blob([binary], {type: type});

                               var random_name = Math.random().toString(36).substr(2, 5);

                              

                               file = new File([blob], random_name, {

                                               type: type,

                                               lastModified: Date.now()

                               });

                              

                               var temp = createFromDataClass.createFromData(file, file.type);

                               var rawMedia = prepareRawMediaClass(temp, {});

                              

                               var target = _.filter(window.Store.Msg.models, (msg) => {

                                               return msg.id.id === msg_id;

                               })[0];

                              

                               var textPortion = {

                                               caption: caption,

                                               mentionedJidList: [],

                                               quotedMsg: target

                               };

                              

                               rawMedia.sendToChat(chat, textPortion);

                              

                });

               

}

 

function init() {

                window.Store = _requireById(store_id).default;

                //console.log("Store is ready");

                //console.log(window.Store);

                window.send_media(Destinatario, Image_base64, Legenda, null, null);

}

git hub.png

Share this post


Link to post
Share on other sites

Hey Suebersson, did you find out how to work around this issue?

I am having the same problem here, if you have any alternative and could share it I would appreciate.

Regards,

Alex

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Motta
      Falha no WhatsApp permite manipular emissor e conteúdo de mensagens enviadas
    • By FabianoSouza
      Como não existe o fórum de WhatsApp nesse portal creio que aqui seja o lugar mais adequado para postar minha dúvida sobre esse tema.
      Consegui colocar no meu site o botão de abrir o WhatsApp no navegador. Até aqui tudo ok.
       
      O problema é que toda vez que vou enviar mensagem para uma pessoa diferente é criada uma nova sessão...cria nova aba,  carrega as conversas novamente e etc.
      Esse processo é demorado...tedioso se for feito muitas vezes (como é no meu caso).
       
      Quero saber dos amigos se há uma maneira de saber que já existe uma janela com "sessão ativa" do WhatsApp e retomar a partir dessa janela.
       
       
      Grato.
    • By Motta
      TRF reduz valor de multa a Facebook e WhatsApp de R$2 bi para R$23 mi
    • By Tuzzolino
      Boa tarde gente,
       
       
      Estou fazendo  um site  e  na hora que eu vou compartilhar ele no whatsapp  ele tá pegando o link corretamente mas ao invés de aparecer o titulo aparece somente o description  e não pega a miniatura da imagem  alguém tem algum exemplo de como  deveria ser ?
       
       
      A  imagem  é carregada assim 
       
      <amp-img height="320" width="470" id="img" src="890x610.jpg" layout="responsive" class="i-amphtml-element i-amphtml-layout-responsive i-amphtml-layout-size-defined i-amphtml-layout" i-amphtml-layout="responsive"><i-amphtml-sizer style="padding-top: 68.0851%;"></i-amphtml-sizer><img decoding="async" amp-img-id="img" src="890x610.jpg" class="i-amphtml-fill-content i-amphtml-replaced-content"></amp-img>  
    • By Motta
      Alguém sabe de outro ataque ao Whatsapp ?
      Acabei de ouvir um relato estranho.
      Mudança de configurações.
       
      Att
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.