OAuth

Manual Oauth

Oauth profile needs to be first set up on ServiceNow. After set up, code below can run Oauth for each REST call. This is taken form a SalesForce Integration.

var oAuthClient = new sn_auth.GlideOAuthClient();
    var params = {grant_type:"password", username: username, password: password};
    var json = new global.JSON();
    var text = json.encode(params);
    var tokenResponse = oAuthClient.requestToken("nameless-dev-ed.my.salesforce.com", text);
    var token = tokenResponse.getToken();

    gs.info("AccessToken:" + token.getAccessToken());
    gs.info("AccessTokenExpiresIn:" + token.getExpiresIn());
    gs.info(" RefreshToken:" + token.getRefreshToken());

    var response, responseBody, status;

    try {

    var restMessage = new sn_ws.RESTMessageV2();
    restMessage.setHttpMethod("get");
    restMessage.setEndpoint("https://nameless-dev-ed.my.salesforce.com/services/data/v39.0/query/?q=SELECT+FirstName,+LastName,+Company,+MobilePhone+from+Lead")
    restMessage.setRequestHeader("Authorization", "Bearer " + token.getAccessToken());

    response = restMessage.execute();
    responseBody = response.haveError() ? response.getErrorMessage() : response.getBody();
    status = response.getStatusCode();

    } catch(ex) {
            responseBody = ex;
            status = '500';
    } finally {
            requestBody = restMessage ? restMessage.getRequestBody():null;
    }

    gs.info("Request Body: " + requestBody);
    gs.info("Response: " + responseBody);
    gs.info("HTTP Status: " + status);