Overview
Excerpt |
---|
|
User Creation API to allow a user to be created from the Salesforce contact screen. |
This guide covers the process for User Creation using the Postman for Chrome tool. There are add-ons available for other browsers, but this guide will show examples using Postman.
Use this guide to troubleshoot network connectivity and password / credential issues.
Prerequisites
- URL (will be provided to you)
- Username
- Password
- Sample Setup Request file (see sample at the end of this article)
- API testing app / browser add-on:
Step-by-step guide
- Open Postman.
- Enter the URL in the URL request box.
- Set the request type to 'POST'.
- Paste the sample Punchout Setup Request XML into the 'Body' dialogue box as raw data. You can find the code at the end of this article.
- Replace the #USERNAME# with your username.
- Replace the #PASSWORD# with your password.
- Click 'Send' (top right of browser window).
- If the request is successful, you will get a '200 OK' response code in the response dialogue box.
- If this is the case, you can continue on testing within your ERP system.
- If you get a blank response dialogue box (even if the status returns '200 OK'), check that the URL, your username, and password are all correct.
- If you still get a blank response, contact your supplier for further assistance.
Sample
Warning |
---|
You need to replace the clientId and clientSecret values below in the getToken() function with the values provided by Professional Services. |
Warning |
---|
This is not meant to be used as is, but is just an example including how you might cache the token and retry on token expiry etc. |
Code Block |
---|
|
function clearToken() {
sessionStorage.removeItem('api_type_ebf530f9-083c-43a1-bf93-cd47a853495b');
sessionStorage.removeItem('api_token_ebf530f9-083c-43a1-bf93-cd47a853495b');
}
function getToken() {
// Use Cached authorization token information if available
//
var type = sessionStorage.getItem('api_type_ebf530f9-083c-43a1-bf93-cd47a853495b');
var token = sessionStorage.getItem('api_token_ebf530f9-083c-43a1-bf93-cd47a853495b');
var result = $.Deferred();
if (type != null && token != null) {
result.resolve({
type: type,
token: token
});
return result.promise();
}
// TODO replace these values with your clientId and client secret values
var clientId = '<replace>';
var clientSecret = '<replace>';
var auth = btoa(clientId + ":" + clientSecret);
// Get and Cache new authorization token.
//
$.ajax({
url: 'https://justinw-office.commercevision.com.au/api/token',
method: 'post',
headers: {'Authorization': 'Basic ' + auth},
data: { 'grant_type': 'client_credentials' }
}).then(function(response) {
type = response.token_type;
token = response.access_token;
sessionStorage.setItem('api_type_ebf530f9-083c-43a1-bf93-cd47a853495b', type);
sessionStorage.setItem('api_token_ebf530f9-083c-43a1-bf93-cd47a853495b', token);
result.resolve({
type: type,
token: token
});
});
return result.promise();
}
function createUser(user) {
function createOptions(tokenInfo) {
return {
url: 'https://justinw-office.commercevision.com.au/api/User',
method: 'post',
headers: { 'Authorization': tokenInfo.type + ' ' + tokenInfo.token },
contentType: 'application/json',
data: JSON.stringify(user)
};
}
var prom = $.Deferred();
// Get token (cached or retrieve) and make call. On failure due to token having expired, retrieve
// a new token and retry.
//
getToken().then(function(token) {
$.ajax(createOptions(token))
.done(function(response) {
prom.resolve(response);
})
.fail(function(response) {
if (response.status == 401) {
clearToken();
getToken().then(function(token) {
$.ajax(createOptions(token))
.done(function(response) {
prom.resolve(response);
})});
return;
}
console.error(response);
});
});
return prom.promise();
}
createUser({
"EmailAddress" : "user-does-not-exist",
"FirstName" : "user-name",
"Surname" : "user-surname",
"PhoneNumber" : "0419 000 000",
"NotifyEmailAddress" : "someone@somedomain.com",
"CustomerCodes" : [
"046008",
"046018"
],
"SendWelcomeEmail": false
}).done(function(response) {
// TODO do something with the response here
console.log(response);
}); |
Content by Label |
---|
showLabels | false |
---|
max | 10 |
---|
showSpace | false |
---|
excludeCurrent | true |
---|
cql | label in ("punchout","testing") |
---|
|