mirror of
				https://github.com/node-red/node-red-nodes.git
				synced 2025-03-01 10:37:43 +00:00 
			
		
		
		
	
							
								
								
									
										58
									
								
								social/twilio/56-twilio.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								social/twilio/56-twilio.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
<!--
 | 
			
		||||
  Copyright 2013 Andrew D Lindsay @AndrewDLindsay
 | 
			
		||||
  http://blog.thiseldo.co.uk
 | 
			
		||||
 | 
			
		||||
  Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
  you may not use this file except in compliance with the License.
 | 
			
		||||
  You may obtain a copy of the License at
 | 
			
		||||
 | 
			
		||||
  http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 | 
			
		||||
  Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
  distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
  See the License for the specific language governing permissions and
 | 
			
		||||
  limitations under the License.
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
<script type="text/x-red" data-template-name="twilio">
 | 
			
		||||
    <div class="form-row">
 | 
			
		||||
        <label for="node-input-title"><i class="icon-flag"></i> Title</label>
 | 
			
		||||
        <input type="text" id="node-input-title" placeholder="Node-RED">
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="form-row">
 | 
			
		||||
        <label for="node-input-name"><i class="icon-tag"></i> Name</label>
 | 
			
		||||
        <input type="text" id="node-input-name" placeholder="Name">
 | 
			
		||||
    </div>
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script type="text/x-red" data-help-name="twilio out">
 | 
			
		||||
	<p>Uses Twilio to send the <b>msg.payload</b> as a SMS to the configured number.</p>
 | 
			
		||||
	<p>Uses <b>msg.topic</b> to set the phone number, if not already set in the properties.</p>
 | 
			
		||||
	<p>You MUST configure both your Account SID and the Auth Token. Either into settings.js like this</p>
 | 
			
		||||
	<p><pre>twilio: { account:'My-ACCOUNT-SID', authtoken:'TWILIO-TOKEN', from:'FROM-NUMBER' },</pre></p>
 | 
			
		||||
	<p>Or as a twiliokey.js file in the directory <b>above</b> node-red.<p>
 | 
			
		||||
	<p><pre>module.exports = { account:'My-ACCOUNT-SID', authtoken:'TWILIO-TOKEN',from:'FROM-NUMBER' }</pre></p>
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<script type="text/javascript">
 | 
			
		||||
    RED.nodes.registerType('twilio out',{
 | 
			
		||||
        category: 'output',
 | 
			
		||||
        defaults: {
 | 
			
		||||
            title: {value:""},
 | 
			
		||||
            name: {value:""}
 | 
			
		||||
        },
 | 
			
		||||
        color:"#ed1c24",
 | 
			
		||||
        inputs:1,
 | 
			
		||||
        outputs:0,
 | 
			
		||||
        icon: "twilio.png",
 | 
			
		||||
        align: "right",
 | 
			
		||||
        label: function() {
 | 
			
		||||
            return this.name||this.title||"twilio out";
 | 
			
		||||
        },
 | 
			
		||||
        labelStyle: function() {
 | 
			
		||||
            return this.name?"node_label_italic":"";
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
</script>
 | 
			
		||||
							
								
								
									
										64
									
								
								social/twilio/56-twilio.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								social/twilio/56-twilio.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright 2013 Andrew D Lindsay @AndrewDLindsay
 | 
			
		||||
 * http://blog.thiseldo.co.uk
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 * http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 **/
 | 
			
		||||
 | 
			
		||||
var RED = require(process.env.NODE_RED_HOME+"/red/red");
 | 
			
		||||
var util = require('util');
 | 
			
		||||
 | 
			
		||||
// Either add a line like this to settings.js
 | 
			
		||||
//   twilio: { account:'My-ACCOUNT-SID', authtoken:'TWILIO-TOKEN',from:'FROM-NUMBER' },
 | 
			
		||||
// Or as a twiliokey.js file in the directory ABOVE node-red.
 | 
			
		||||
//   module.exports = { account:'My-ACCOUNT-SID', authtoken:'TWILIO-TOKEN',from:'FROM-NUMBER' }
 | 
			
		||||
 | 
			
		||||
try {
 | 
			
		||||
	var twiliokey = RED.settings.twilio || require(process.env.NODE_RED_HOME+"/../twiliokey.js");
 | 
			
		||||
}
 | 
			
		||||
catch(err) {
 | 
			
		||||
	util.log("[56-twilio.js] Error: Failed to load Twilio credentials");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if (twiliokey) {
 | 
			
		||||
	var twilioClient = require('twilio')(twiliokey.account, twiliokey.authtoken);
 | 
			
		||||
	var fromNumber = twiliokey.from;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function TwilioOutNode(n) {
 | 
			
		||||
	RED.nodes.createNode(this,n);
 | 
			
		||||
	this.title = n.title;
 | 
			
		||||
	var node = this;
 | 
			
		||||
	this.on("input",function(msg) {
 | 
			
		||||
		if (typeof(msg.payload) == 'object') {
 | 
			
		||||
			msg.payload = JSON.stringify(msg.payload);
 | 
			
		||||
		}
 | 
			
		||||
		if (twiliokey) {
 | 
			
		||||
			try {
 | 
			
		||||
				// Send SMS
 | 
			
		||||
				twilioClient.sendMessage( {to: msg.topic, from: fromNumber, body: msg.payload}, function(err, response) {
 | 
			
		||||
					if (err) node.error(err);
 | 
			
		||||
					//console.log(response);
 | 
			
		||||
				});
 | 
			
		||||
			}
 | 
			
		||||
			catch (err) {
 | 
			
		||||
				node.error(err);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		else {
 | 
			
		||||
			node.warn("Twilio credentials not set/found. See node info.");
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
RED.nodes.registerType("twilio out",TwilioOutNode);
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								social/twilio/icons/twilio.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								social/twilio/icons/twilio.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 717 B  | 
		Reference in New Issue
	
	Block a user