- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-17-2018 11:18 AM
I'm calling the Zoom.us API (https://zoom.github.io/api/) and to authenticate I need to include a JWT with my API call. However, it seems that functionality is not in ServiceNow yet.
I've found a few threads around getting the CryptoJS library into ServiceNow, but it doesn't seem to work. I did see on the live code happy hour where they we're able to get this working, but I didn't see any source files available.
I've created a Script Included called CryptoJS in the Global Scope. I've pasted the entire JS Source file named "hmac-sha256" from rollups directory from this source: https://code.google.com/archive/p/crypto-js/downloads
I've removed all the ServiceNow Class Info, and just have a plain script include with nothing but the raw JS data.
Sample:
Now, I can't figure out how to even call the Script Include inside Xplore or a Fix Script.
Appending the "global." to the CryptoJS reference doesn't seem to work. Actually, line 1 all together gives me a "TypeError: undefined is not a function." If I remove that, the code still isn't finding the library as I have a lot of undefined when I log the output from a function.
Example:
var c = new CryptoJS(); //tried this, and replacing "global" with "c" to ref, not working
function base64url(source) {
// Encode in classical base64
encodedSource = global.CryptoJS.enc.Base64.stringify(source);
// Remove padding equal characters
encodedSource = encodedSource.replace(/=+$/, '');
// Replace characters according to base64url specifications
encodedSource = encodedSource.replace(/\+/g, '-');
encodedSource = encodedSource.replace(/\//g, '_');
return encodedSource;
}
This also returns "undefined".
var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));
gs.print("sh: " + stringifiedHeader);
Any suggestions or pointers how to get this library in ServiceNow?
Solved! Go to Solution.
- Labels:
-
Integrations
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-17-2018 12:34 PM
Probably you need to put it in a scoped app. (best practice anyway)
Since Jakarta ES5 is available, but global runs in compatibility mode.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2019 11:56 AM
Would this work for RSA-SHA1 algorithm?
Please mark this response as correct or helpful if it assisted you with your question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-09-2019 09:36 AM
I'm not sure.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-12-2018 01:49 PM
Make sure the Javascript mode of your scoped app is set to ES 5 Standards Mode and not to Compatability
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-07-2020 07:36 PM
ServiceNow comes with the "CryptoJS" library as part of it's open source software as listed in the stats.do page. However anyone know how to initiate the object for this library, as this may resolve this CryptoJS library import issue?