Send MultiMedia Added to chats out
This commit is contained in:
parent
98742199d5
commit
1830190943
25
README.md
25
README.md
@ -3,6 +3,8 @@
|
||||
Simple node for connecting Node-Red to Whatsapp :iphone:
|
||||
|
||||
Currently in developing mode, Continous updated may encounter. :sweat_smile:
|
||||
|
||||
Working on WhatsappLite (Lite version of whatsapp Web baised on web sockets.)
|
||||
|
||||
|
||||
## To Connect with Whatsapp
|
||||
@ -55,14 +57,19 @@ Admin Node generate QR Code just below the node for easy connection with whatsap
|
||||
|
||||
3. **Chats Out** : As simple as mention on name, node will send `msg.payload` recived at input to the number mentioned in node.
|
||||
|
||||
<p>Don't forget to mention international dialing code befor your number.
|
||||
Number must be in format like <b>+11 99999 99999</b> without any space.</p>
|
||||
<P><b>OR</b></P>
|
||||
<P>Leave the Number blank and provide the number along with paylod
|
||||
at `msg.toNumber` with international code.</P>
|
||||
<p>To send message on multiple contacts an Arrar of number can be passed
|
||||
on `msg.toNumber` like `msg.toNumber = [+1199999999, +12990000099, +1311111111].
|
||||
</p>
|
||||
MultiMedia Message Out: Requirments-
|
||||
| Input | Description |
|
||||
|--------|-------------|
|
||||
| `msg.image` | Base64 (encoded image) |
|
||||
| `msg.payload` | Image Caption |
|
||||
| `msg.toNumber` | Sender number (if number not provided in node) |
|
||||
|
||||
Don't forget to mention international dialing code befor your number.
|
||||
Number must be in format like <b>+11 99999 99999</b> without any space.
|
||||
<P><b>OR</b></P>
|
||||
Leave the Number blank and provide the number along with paylod at `msg.toNumber` with international code.
|
||||
To send message on multiple contacts an Arrar of number can be passed on `msg.toNumber` like `msg.toNumber` = ["+1199999999", "+12990000099", "+1311111111"].
|
||||
|
||||
|
||||
4. **Group Message** : Whatsapp Group Node to send message in a Group.
|
||||
|
||||
@ -81,7 +88,7 @@ Issues and Suggestions are welcome [here.](https://github.com/raweee/node-red-co
|
||||
* `Ver-0.1.23` : Nodes are formatted correctly and names are updated.
|
||||
* `Ver-0.1.28` : Now QR Codes are directlly avilable in run time on Whatsapp-Admin-Node.
|
||||
* `Ver-0.1.30` : Message can be send to an Array of contacts provided at `msg.toNumber`.
|
||||
* Working on Reply Node.
|
||||
* Working on WhatsappLite.
|
||||
|
||||
## Future Nodes
|
||||
Currently working on more Whatsapp Node and will be avilable soon -
|
||||
|
||||
@ -47,5 +47,12 @@ Node to send whatsapp messages.
|
||||
|
||||
As simple as mention on name, node will send `msg.payload` recived at input to the number mentioned in node.
|
||||
|
||||
MultiMedia Message Out: Requirments-
|
||||
| Input | Description |
|
||||
|--------|-------------|
|
||||
| `msg.image` | Base64 (encoded image) |
|
||||
| `msg.payload` | Image Caption |
|
||||
| `msg.toNumber` | Sender number (if number not provided in node) |
|
||||
|
||||
-*Don't forget to mention international dialing code befor your number. Number must be in format like `+11 99999 99999` without any space.*
|
||||
</script>
|
||||
|
||||
36
chats-out.js
36
chats-out.js
@ -5,6 +5,7 @@ module.exports = function(RED) {
|
||||
node.number = config.number;
|
||||
var whatsappLinkNode = RED.nodes.getNode(config.whatsappLink);
|
||||
node.waClient = whatsappLinkNode.client;
|
||||
const { MessageMedia } = require('whatsapp-web.js')
|
||||
|
||||
let SetStatus = function(WAStatus, color){
|
||||
node.status({fill:color,shape:"dot",text:WAStatus});
|
||||
@ -28,16 +29,43 @@ module.exports = function(RED) {
|
||||
} else { node.log(`Error Sending Msg: ${e}`)}
|
||||
};
|
||||
|
||||
function whatsappMultiMediaMessage(numb, whatsappImage, whatsappCaption){
|
||||
try {
|
||||
numb = node.number;
|
||||
whatsappImage = whatsappImage.split(',')[1] || whatsappImage;
|
||||
var myMessage = new MessageMedia('image/png', whatsappImage, null, null);
|
||||
numb = typeof numb ==='number' ? numb : numb.replace(/\D/g, '');
|
||||
numb = `${numb}@c.us`;
|
||||
node.waClient.sendMessage(numb, myMessage, {caption : whatsappCaption || "Image from Node-Red"});
|
||||
SetStatus("Message Send.", "green");
|
||||
setTimeout(()=>{
|
||||
SetStatus('Connected','green');
|
||||
}, 2000)
|
||||
} catch(e) {
|
||||
node.log(`Error sending MultiMedia Message : ${e}`)
|
||||
}
|
||||
};
|
||||
|
||||
node.on('input', (message)=> {
|
||||
if (node.number){
|
||||
whatsappMessage(node.number, message.payload);
|
||||
if (message.image){
|
||||
whatsappMultiMediaMessage(node.number, message.image, message.payload);
|
||||
}
|
||||
else {
|
||||
whatsappMessage(node.number, message.payload);
|
||||
}
|
||||
|
||||
} else if (message.toNumber){
|
||||
var numbers = typeof message.toNumber === 'number' ? Array.of(message.toNumber) : message.toNumber;
|
||||
for (number of numbers) {
|
||||
setTimeout(()=> {
|
||||
whatsappMessage(number, message.payload)}
|
||||
, 3000);
|
||||
if(message.image){
|
||||
whatsappMultiMediaMessage(number, message.image, message.payload)
|
||||
delay(2000);
|
||||
|
||||
} else {
|
||||
whatsappMessage(number, message.payload)
|
||||
delay(2000)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
SetStatus("No number","red");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user