- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-12-2024 01:46 PM
I've created a REST Message using an oAuth profile. Using the Get OAuth Token link I am able to successfully pull back a token. Am now trying to script the same call in a business rule. I've read many articles and tried several variations but am not able to pull back a token. The oAuth profile uses a Grant Type of "Client Credentials. I'm in Global scope. At this point I am confused about the difference between GlideOAuthClientRequest() and GlideOAuthClient, which to use and what parameters to pass. Example scripts talk about oauth_profile_id and oath_entity_id but it s not clear if those are sys_id values or something else. Currently using the following:
var oauth_profile_id = 'c4600d06ebb0821023a9fd59bad0cd43';
var params = {grant_type:"Client Credentials",oauth_provider_profile:oauth_profile_id};
var json = new global.JSON();
var text = json.encode(params);
var oAuthClient = new sn_auth.GlideOAuthClient();
try {
var tokenResponse = oAuthClient.requestToken('Test');
var token = tokenResponse.getToken();
var access_token = token.getAccessToken();
} catch(ex) {
alert ('asasasas');
}
Any advice is appreciated.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-13-2024 08:03 AM
I found my mistake. I was using "Client Credentials" instead of "client_credentials". New code works to obtain token and make API call:
var params = {
grant_type: "client_credentials",
oauth_provider_profile: "c4600d06ebb0821023a9fd59bad0cd43"
};
var json = new global.JSON();
var text = json.encode(params);
var oAuthClient = new GlideOAuthClient();
try {
var tokenResponse = oAuthClient.requestToken('Test', text);
var token = tokenResponse.getToken();
var access_token = token.getAccessToken();
var r = new sn_ws.RESTMessageV2('Action', 'Create Ticket');
r.setRequestHeader('Authorization',access_token);
r.setRequestHeader('Content-Type','application/json');
var response = r.execute();
current.u_string_1 = response.getBody();
current.u_string_1 += '\n' + token.getExpiresIn();
} catch (ex) {
alert('asasasas');
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎03-13-2024 08:03 AM
I found my mistake. I was using "Client Credentials" instead of "client_credentials". New code works to obtain token and make API call:
var params = {
grant_type: "client_credentials",
oauth_provider_profile: "c4600d06ebb0821023a9fd59bad0cd43"
};
var json = new global.JSON();
var text = json.encode(params);
var oAuthClient = new GlideOAuthClient();
try {
var tokenResponse = oAuthClient.requestToken('Test', text);
var token = tokenResponse.getToken();
var access_token = token.getAccessToken();
var r = new sn_ws.RESTMessageV2('Action', 'Create Ticket');
r.setRequestHeader('Authorization',access_token);
r.setRequestHeader('Content-Type','application/json');
var response = r.execute();
current.u_string_1 = response.getBody();
current.u_string_1 += '\n' + token.getExpiresIn();
} catch (ex) {
alert('asasasas');
}