node-red-contrib-twitter-media
Version:
NodeRED to retrieve media Tweets
53 lines (39 loc) • 1.54 kB
JavaScript
var Twit = require('twit');
module.exports = function(RED) {
'use strict';
function TwitterMedia(n) {
RED.nodes.createNode(this,n);
var node = this;
node.on('input', function (msg) {
var creds = RED.nodes.getNode(n.creds),
payload = typeof msg.payload === 'object' ? msg.payload : {};
var attrs = ['tweet'];
for (var attr of attrs) {
if (n[attr]) {
payload[attr] = n[attr];
}
}
payload.id = payload.tweet;
var T = new Twit({
consumer_key: creds.consumer_key,
consumer_secret: creds.consumer_secret,
access_token: creds.access_token_key,
access_token_secret: creds.access_token_secret
});
var videoFile = msg.media;
var message= msg.topic;
T.postMediaChunked({ file_path: videoFile }, function (err, data, response) {
if (!err) {
var mediaId = data.media_id_string;
var tweet = { status: message, media_ids: [mediaId] };
T.post('statuses/update', tweet, function (err, tweet, response) {
if (!err) {
node.send(tweet);
}
});
}
});
});
}
RED.nodes.registerType('twitter-media', TwitterMedia);
};