@Emil fantastic! the other new sdk features will include twist support? we have lots of use cases where the twist would be dialed to coded manufacturing activities...
Which javascript version on SDK?
-
I'm having some trouble building a basic script that sends sms alerts stored on the flichub.
What javascript version is used in this environment for HBACE27-27526
Firmware: 4.2.14 -
@gregor-vilkner yes! Can you tell me a bit more about your use cases?
-
@Emil fantastic! the other new sdk features will include twist support? we have lots of use cases where the twist would be dialed to coded manufacturing activities...
-
@gregor-vilkner we are working on upgrading the JS engine to the newer QuickJS which has ES2023 support. Currently we are doing internal testing and will probably release it in a few months together with other new features to the hub sdk.
-
@Emil a few "first flic-day" observations on this topic:
-
we're trying to integrate with a GraphQL api and need to turn all our beautiful queries into one-liners. is there no support for 'let', '``', multi-line text, and text substitutions?
let query =query q1{ heroes(name: ${someName}){ name father{ name } } }
; -
is there any async await way of doing web requests without call-back hell? it's like going back to 1998...
-
no fetch?
-
no atob(), no jwt decoding
function isTokenExpired(token) {
if(token==null) return true;
const arrayToken = token.split('.');
const part2 = JSON.parse(new TextDecoder().decode(Duktape.dec('base64', arrayToken[1])));
return Math.floor(new Date().getTime() / 1000) >= part2.sub;
} -
- 5 months earlier
-
@flic-16 said in Which javascript version on SDK?:
Buffer.from
is a Node.js specific feature not present in any javascript/ecmascript standard.You can use
Duktape.enc('base64', 'some string')
instead to perform the Base64 encode.Like this:
const EncodedAuth = Duktape.enc('base64', 'abcd123:Password!');
-
@Emil said in Which javascript version on SDK?:
old javascript version
Is it possible to have a javascript in this environment send an SMS to the smsburst API?
We have it working in other environments, but this one just doesnt seem to work.
const http = require('http'); // Basic authentication credentials const encodedAuth = Buffer.from('abcd123:Password123!').toString('base64'); // Setting up the headers for the request const headers = { "Authorization": "Basic " + encodedAuth }; // Message details const message = encodeURIComponent("IVONNE: Testing from Flic SDK"); const to = encodeURIComponent("+16475551212"); const senderNumber = encodeURIComponent("18335551212"); const repliesToEmail = encodeURIComponent("email@example.com"); // Constructing the URL const url = "https://api.transmitsms.com/send-sms.json?message=" + message + "&to=" + to + "&from=" + senderNumber + "&replies_to_email=" + repliesToEmail; // Making the HTTP request function sendSmsViaTransmitSms() { console.log("Starting request to SMS Burst API..."); http.makeRequest({ url: url, method: 'POST', headers: headers }, function(error, result) { if (error) { console.error("An error occurred during the HTTP request:", error); } else { console.log("Received response from SMS Burst API"); console.log("Response status code:", result.statusCode); console.log("Response headers:", result.headers); // Check if result.content exists and log it if (typeof result.content !== 'undefined') { console.log("Response body:", result.content); } else { console.log("Response body not available in this format"); } } }); } // Execute the function to send the SMS sendSmsViaTransmitSms();
Error is:
TypeError: undefined not callable (property 'from' of [object Function])
at [anon] (duk_js_call.c:2917) internal
at [anon] (root/basicBurstSMSTest/main.js:1)
at require (init.js:131)
at [anon] (init.js:139) preventsyield
at runInit () native strict preventsyield
at handlePacket (pipe_communication.js:48)
at readCallback (pipe_communication.js:93) preventsyield -
@flic-16 currently we use https://duktape.org/ which implements a pretty old javascript version. We might upgrade in the future to an engine supporting a more modern javascript version.