From c54a50b834d6f265767816dc0f2776a69dd746e7 Mon Sep 17 00:00:00 2001 From: Brett Taylor Date: Thu, 30 Sep 2021 23:03:05 -0400 Subject: [PATCH] add twitter bot icon png --- Projects/Foundations/Icons/slack-bot.png | Bin 8023 -> 19211 bytes Projects/Foundations/Icons/twitter-bot.png | Bin 0 -> 16910 bytes .../Schemas/App-Schema/twitter-bot.json | 2 +- .../Function-Libraries/SocialBotsFunctions.js | 74 ++++++++++-------- 4 files changed, 42 insertions(+), 34 deletions(-) create mode 100644 Projects/Foundations/Icons/twitter-bot.png diff --git a/Projects/Foundations/Icons/slack-bot.png b/Projects/Foundations/Icons/slack-bot.png index 1422ddd500e6056f19cb43aebbd08c699f781e3c..7235819097ed7a686401de11494d32c3867d79fe 100644 GIT binary patch literal 19211 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 a+2Xp~m>SC#-|ygmeS5llyH#!8&G>Joq6!QE diff --git a/Projects/Foundations/Icons/twitter-bot.png b/Projects/Foundations/Icons/twitter-bot.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe5187d2dac2f5a91156bc44ccad9b7f5b357fc GIT binary patch literal 16910 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 literal 0 HcmV?d00001 diff --git a/Projects/Foundations/Schemas/App-Schema/twitter-bot.json b/Projects/Foundations/Schemas/App-Schema/twitter-bot.json index e3be86b55..27f8ab800 100644 --- a/Projects/Foundations/Schemas/App-Schema/twitter-bot.json +++ b/Projects/Foundations/Schemas/App-Schema/twitter-bot.json @@ -29,7 +29,7 @@ } ], "initialValues": { - "config": "{\n \"consumer_key\": \"TWITTER_CONSUMER_KEY\"\n \"consumer_secret\": \"TWITTER_CONSUMER_SECRET\"\n \"access_token_key\": \"TWITTER_ACCESS_TOKEN_KEY\"\n \"access_token_secret\": \"TWITTER_ACCESS_TOKEN_SECRET\"\n}" + "config": "{\n \"consumer_key\": \"TWITTER_CONSUMER_KEY\",\n \"consumer_secret\": \"TWITTER_CONSUMER_SECRET\",\n \"access_token_key\": \"TWITTER_ACCESS_TOKEN_KEY\",\n \"access_token_secret\": \"TWITTER_ACCESS_TOKEN_SECRET\"\n}" }, "addLeftIcons": true, "level": 3, diff --git a/Projects/Foundations/UI/Function-Libraries/SocialBotsFunctions.js b/Projects/Foundations/UI/Function-Libraries/SocialBotsFunctions.js index 5521ee04f..241537375 100644 --- a/Projects/Foundations/UI/Function-Libraries/SocialBotsFunctions.js +++ b/Projects/Foundations/UI/Function-Libraries/SocialBotsFunctions.js @@ -186,41 +186,49 @@ function newFoundationsFunctionLibrarySocialBotsFunctions() { } function sendTwitterTestMessage(node, callBackFunction) { - var Twitter = SA.nodeModules.twitter - - let consumer_key = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'consumer_key') - let consumer_secret = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'consumer_secret') - let access_token_key = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'access_token_key') - let access_token_secret = UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(node.payload, 'access_token_secret') - - if (process.env.TWITTER_CONSUMER_KEY) { - consumer_key = process.env.TWITTER_CONSUMER_KEY - } - if (process.env.TWITTER_CONSUMER_SECRET) { - consumer_secret = process.env.TWITTER_CONSUMER_SECRET - } - if (process.env.TWITTER_ACCESS_TOKEN_KEY) { - access_token_key = process.env.TWITTER_ACCESS_TOKEN_KEY - } - if (process.env.TWITTER_ACCESS_TOKEN_SECRET) { - access_token_secret = process.env.TWITTER_ACCESS_TOKEN_SECRET - } + let message = JSON.stringify({text: "Test message from Superalgos!"}) + let url = "https://api.twitter.com/1.1/statuses/update.json" - var twitterclient = new Twitter({ - consumer_key: consumer_key, - consumer_secret: consumer_secret, - access_token_key: access_token_key, - access_token_secret: access_token_secret - }); - - let message = JSON.stringify({status: "Test message from Superalgos!"}) + httpRequestJSON(message, url, onResponse) - twitterclient.post('statuses/update', message, function(error, tweet, response) { - if(error) { - callBackFunction({ result: "Fail", message: error }) + function onResponse(err) { + if (err.result === GLOBAL.DEFAULT_OK_RESPONSE.result) { + node.payload.uiObject.setInfoMessage('Twitter status update sent.') + callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE) + } else { + node.payload.uiObject.setErrorMessage('Could not send Twitter status update. Error Response: ' + err.message) + callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) } - console.log(tweet); // Tweet body. - console.log(response); // Raw response object. - }); + } + + function httpRequestJSON(pContentToSend, pPath, callBackFunction) { + let xmlHttpRequest = new XMLHttpRequest(); + xmlHttpRequest.onreadystatechange = function () { + if (this.readyState === 4 && this.status === 200) { + callBackFunction(GLOBAL.DEFAULT_OK_RESPONSE, xmlHttpRequest.responseText); + return; + } else if (this.readyState === 4 && (this.status === 404 || this.status === 401 || this.status === 400)) { + callBackFunction({ + result: "Fail", + message: xmlHttpRequest.responseText + }); + return; + } + }; + + if (pContentToSend === undefined) { + xmlHttpRequest.open("GET", pPath, true); + xmlHttpRequest.send(); + } else { + try { + let blob = new Blob([pContentToSend]); + xmlHttpRequest.open("POST", pPath, true); + xmlHttpRequest.send(blob); + } catch (err) { + if (ERROR_LOG === true) { console.log(spacePad(MODULE_NAME, 50) + " : " + "[ERROR] callServer -> err.message = " & err.message); } + callBackFunction({ result: "Fail", message: err.message }) + } + } + } } }