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
      Facebook e Instagram e seus sites e aplicativos saem do ar no mundo todo
    • By Motta
      “Não temos consciência da quantidade de dados que damos ao celular mesmo sem tocá-lo”
       
       
      "Advogada Paloma Llaneza explica que apagar aplicativos como Facebook e WhatsApp é a única forma de evitar que eles colham nossos dados"
       
      O problema é que no trabalho se exige de certa forma o wsp, face estou quase largando.
    • By Trapé
      Bom Dia, preciso enviar do meu app uma mensagem para o whatsapp, mas para contatos não existentes no dispositivo.
      O usuário insere o número do celular no EditText e envia a mensagem para esse número.
      O problema é que como não é um número existente no meu dispositivo ele abre a lista de contatos do whats para selecionar um contato.
      Alguém sabe como faço para enviar para contatos não cadastrados?

      Segue meu código abaixo:
       
      Intent shareIntent =new Intent("android.intent.action.MAIN"); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.putExtra(Intent.EXTRA_TEXT, mensagem); shareIntent.putExtra(Intent.EXTRA_STREAM, arquivo); shareIntent.setType("image/*"); shareIntent.setPackage("com.whatsapp"); shareIntent.putExtra("jid", "55" + (telefone_envio) + "@s.whatsapp.net"); shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); try { startActivity(shareIntent); } catch (android.content.ActivityNotFoundException ex) { Toast.makeText(getBaseContext(), "WhatApp Não Instalado.", Toast.LENGTH_SHORT).show(); } Usando a url consigo enviar para contatos não cadastros, mas não consigo anexar arquivo:
      Intent shareIntent = new Intent(Intent.ACTION_VIEW); shareIntent.setData(Uri.parse("https://api.whatsapp.com/send?phone="+telefone_envio+"&text="+arquivo)); startActivity(shareIntent); Agradeço desde Já
      Carla
    • By alexcorrea
      Olá pessoal, alguém poderia me ajudar?
      Como faço para redirecionar meu site responsivo direto para o WhatsApp, sem precisar abrir o site?
    • By JOWEB
      Boa Tarde.
       
      Pessoal sou novo aqui, entao se houver algum erro de postagem me desculpa estou me acostumando com sistema do Forum.
       
      O meu problema e o seguinte:
      Quando eu compartilho os post do meu site Wordpress no Whatsapp via link, ao invés de aparece as imagens do post, esta aparecendo a logomarca do site meu site junto com o link compartilhado como podem ver na imagem anexada ao tópico. Gostaria de deixa somente as imagens que foi postada em cada post.
       
      Desde ja muito obrigado. 
       

×

Important Information

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