Setting outbound REST API with OAuth

Community Alums
Not applicable

Hi,

I am trying to integrate with third party with OAuth 2.0. We are using grant type as client credentials.

I need to pass bearer token every time in request header. I am trying with below script. Kindly help me on this.

I am getting access token as null.

(function executeRule(current, previous /*null when async*/) {
var oAuthClient = new sn_auth.GlideOAuthClient();
var params = {grant_type:"client_credentials", client_id:'xxxx', client_secret:'xxxx'};
var json = new global.JSON();
var text = json.encode(params);
var tokenResponse = oAuthClient.requestToken('xxx', text);
var token = tokenResponse.getToken();
gs.log("AccessToken:" + token.getAccessToken());
gs.log("AccessTokenExpiresIn:" + token.getExpiresIn());
gs.log(" RefreshToken:" + token.getRefreshToken());
var r = new sn_ws.RESTMessageV2('Oracle Service', 'post');
r.setRequestHeader("Content-Type","application/json");
r.setRequestHeader("Bearer Token"+accessToken);
r.setAuthentication("oauth2", "xxx default_profile");

r.setStringParameter("action","create");
r.setStringParameter("number",current.number);
r.setStringParameter("description",current.description);
r.setStringParameter("priority",current.priority);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
	var jsonObject = JSON.parse(responseBody);
gs.log(httpStatus);
}
catch(ex) {
var message = ex.message;
gs.print("ex==:" + ex);
}
})(current, previous);

Thanks in advance.

6 REPLIES 6

Hi,

Did you compare the Postman request vs your script?

what's the difference?

check this

Script to retrieve Access and Refresh tokens using GlideOAuthClient libraries

regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Hi @Community Alums, I am looking for the same , are you able to complete this?

can you please help me?