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?