Send MultiMedia Added to chats out
This commit is contained in:
parent
98742199d5
commit
1830190943
23
README.md
23
README.md
@ -4,6 +4,8 @@ Simple node for connecting Node-Red to Whatsapp :iphone:
|
|||||||
|
|
||||||
Currently in developing mode, Continous updated may encounter. :sweat_smile:
|
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
|
## 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.
|
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.
|
MultiMedia Message Out: Requirments-
|
||||||
Number must be in format like <b>+11 99999 99999</b> without any space.</p>
|
| 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>
|
<P><b>OR</b></P>
|
||||||
<P>Leave the Number blank and provide the number along with paylod
|
Leave the Number blank and provide the number along with paylod at `msg.toNumber` with international code.
|
||||||
at `msg.toNumber` with international code.</P>
|
To send message on multiple contacts an Arrar of number can be passed on `msg.toNumber` like `msg.toNumber` = ["+1199999999", "+12990000099", "+1311111111"].
|
||||||
<p>To send message on multiple contacts an Arrar of number can be passed
|
|
||||||
on `msg.toNumber` like `msg.toNumber = [+1199999999, +12990000099, +1311111111].
|
|
||||||
</p>
|
|
||||||
|
|
||||||
4. **Group Message** : Whatsapp Group Node to send message in a Group.
|
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.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.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`.
|
* `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
|
## Future Nodes
|
||||||
Currently working on more Whatsapp Node and will be avilable soon -
|
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.
|
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.*
|
-*Don't forget to mention international dialing code befor your number. Number must be in format like `+11 99999 99999` without any space.*
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
34
chats-out.js
34
chats-out.js
@ -5,6 +5,7 @@ module.exports = function(RED) {
|
|||||||
node.number = config.number;
|
node.number = config.number;
|
||||||
var whatsappLinkNode = RED.nodes.getNode(config.whatsappLink);
|
var whatsappLinkNode = RED.nodes.getNode(config.whatsappLink);
|
||||||
node.waClient = whatsappLinkNode.client;
|
node.waClient = whatsappLinkNode.client;
|
||||||
|
const { MessageMedia } = require('whatsapp-web.js')
|
||||||
|
|
||||||
let SetStatus = function(WAStatus, color){
|
let SetStatus = function(WAStatus, color){
|
||||||
node.status({fill:color,shape:"dot",text:WAStatus});
|
node.status({fill:color,shape:"dot",text:WAStatus});
|
||||||
@ -28,16 +29,43 @@ module.exports = function(RED) {
|
|||||||
} else { node.log(`Error Sending Msg: ${e}`)}
|
} 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)=> {
|
node.on('input', (message)=> {
|
||||||
if (node.number){
|
if (node.number){
|
||||||
|
if (message.image){
|
||||||
|
whatsappMultiMediaMessage(node.number, message.image, message.payload);
|
||||||
|
}
|
||||||
|
else {
|
||||||
whatsappMessage(node.number, message.payload);
|
whatsappMessage(node.number, message.payload);
|
||||||
|
}
|
||||||
|
|
||||||
} else if (message.toNumber){
|
} else if (message.toNumber){
|
||||||
var numbers = typeof message.toNumber === 'number' ? Array.of(message.toNumber) : message.toNumber;
|
var numbers = typeof message.toNumber === 'number' ? Array.of(message.toNumber) : message.toNumber;
|
||||||
for (number of numbers) {
|
for (number of numbers) {
|
||||||
setTimeout(()=> {
|
if(message.image){
|
||||||
whatsappMessage(number, message.payload)}
|
whatsappMultiMediaMessage(number, message.image, message.payload)
|
||||||
, 3000);
|
delay(2000);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
whatsappMessage(number, message.payload)
|
||||||
|
delay(2000)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SetStatus("No number","red");
|
SetStatus("No number","red");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user