Invites a person to join an App Domain within your RedCritter App.
This version of the InviteUser command invites a user based on their ProfileEntity using the language that they choose.
https://redcritterconnecter.com/services/gamificationv1/InviteUser?SecretKey={SecretKey}&ProfileEntity={ProfileEntity}&Language={Language}
SecretKey | string | yes | This SecretKey is an App or App Domain Secret Key. If an App Secret Key is specified, your default App Domain will be assumed. If an App Domain Secret Key is specified, that App Domain will be used. |
ProfileEntity | string | yes | The ProfileEntity represents to whom the API call will apply. This can be an email address or a team name. Multiple email addresses or teams can be specified by separating them with a semicolon. Team names can be any string value other than an email address. If a team's profile does not exist, RedCritter will create one dynamically. |
Language | string | yes | This specifies the language code to use such as en-us for US Engilish. |
Code Samples Javascript, C#
InviteUser with JavaScript
This is a minimal example of calling the InviteUser API via HTML and Javascript. Remember to never use your Secret Keys on the client side.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
<script type="text/javascript">
var connecterURL = "https://www.redcritterconnecter.com/";
function inviteUser(secretKey, profileEntity, language, cbSuccess, cbFail) {
$.getJSON(connecterURL + "services/gamificationv1/inviteUser?jsoncallback=?", { secretKey: secretKey, profileEntity: profileEntity, language: language },
function (data) {
if (data.Submitted) {
cbSuccess(data);
} else {
cbFail(data);
}
});
}
//My Success Callback
function onMyinviteUserSuccessHandler(data) {
//data is JSON response
alert("Request was successful");
}
//My Failure Callback
function onMyinviteUserFailHandler(data) {
//Something went wrong
alert("Something went wrong");
}
</script>
</head>
<body>
<table>
<tr>
<td>Secret Key</td>
<td>
<input type="text" id="tSecretKey" style="width: 500px" />
</td>
</tr>
<tr>
<td>Profile Entity</td>
<td>
<input type="text" id="tProfileEntity" />
</td>
</tr>
<tr>
<td>Language</td>
<td>
<input type="text" id="tLanguage" />
</td>
</tr>
<tr>
<td></td>
<td>
<input type="button" onclick="inviteUser($('#tSecretKey').val(), $('#tProfileEntity').val(), $('#tLanguage').val(), onMyinviteUserSuccessHandler, onMyinviteUserFailHandler)"
value="Invite User" /></td>
</tr>
</table>
</body>
</html>
InviteUser with C#
This is a minmal example of calling the InviteUser API and parsing the JSON result into a populated C# object. This example uses asynchronous techniques to raise a callback when the response is received.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.Web; //Add reference to System.Web
using System.Runtime.Serialization.Json; //Add reference to System.Runtime.Serialization
namespace RedCritterConnecter.Samples
{
//Create a class to contain the response
public class InviteUserResponse
{
public String ErrorMessage { get; set; }
public Boolean Submitted { get; set; }
public String RequestID { get; set; }
public String APIVersion { get; set; }
public String ReturnParam1 { get; set; }
public String ReturnParam2 { get; set; }
public String ReturnParam3 { get; set; }
private Int32 ErrorCode { get; set; }
}
public class InviteUser
{
public delegate void OnInviteUserResponse(InviteUserResponse InviteUserResponse);
public event OnInviteUserResponse onInviteUserResponse;
public delegate void OnInviteUserResponseError(InviteUserResponse InviteUserResponse);
public event OnInviteUserResponseError onInviteUserResponseError;
const string CONST_ConnecterBaseURL = "https://www.redcritterconnecter.com/";
public void Execute(String SecretKey, String ProfileEntity, String Language)
{
try
{
//Create url encoded parameters in query string
String queryString = "secretkey=" + System.Web.HttpUtility.UrlEncode(SecretKey) + "&profileentity=" + System.Web.HttpUtility.UrlEncode(ProfileEntity) + "&Language=" + System.Web.HttpUtility.UrlEncode(Language);
//Create a new instance of a WebClient
WebClient wc = new System.Net.WebClient();
//Prevent this request from caching in order to ensure that it is sent to server
wc.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
//Attach an event handler to receive the response
wc.DownloadStringCompleted += onInviteUserResponseReceived;
//Make the call
wc.DownloadStringAsync(new Uri(CONST_ConnecterBaseURL + "services/gamificationv1/InviteUser?" + queryString, UriKind.Absolute));
}
catch
{
//Something went wrong communicating with the server
if (onInviteUserResponseError != null)
{
onInviteUserResponseError(null);
}
}
}
private void onInviteUserResponseReceived(object sender, DownloadStringCompletedEventArgs e)
{
try
{
//Create a JSON serializer
System.Runtime.Serialization.Json.DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(InviteUserResponse));
//Copy the string into a memory stream
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(e.Result));
//Read the stream into an object matching the response's type
InviteUserResponse InviteUserResponse = (InviteUserResponse)s.ReadObject(ms);
//Work with the populated response object
if (InviteUserResponse.Submitted == true)
{
//Request was accepted, raise the success event
onInviteUserResponse(InviteUserResponse);
}
else
{
//Something went wrong
if (onInviteUserResponseError != null)
{
//Request failed, raise the error event
onInviteUserResponseError(InviteUserResponse);
}
}
}
catch
{
//Something went wrong
onInviteUserResponseError(null);
}
}
}
}
Responses JSON, XML
JSON Response
{
"ErrorMessage": "",
"Submitted": true,
"RequestID": "2013-08-20 20:55:54.0260394",
"APIVersion": "1.0.0",
"ReturnParam1": "",
"ReturnParam2": "",
"ReturnParam3": "",
"ErrorCode": 0
}
XML Response
<Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="Connecter">
<APIVersion>1.0.0</APIVersion>
<ErrorCode>0</ErrorCode>
<ErrorMessage />
<RequestID>2013-08-20 20:56:34.7256203</RequestID>
<ReturnParam1 />
<ReturnParam2 />
<ReturnParam3 />
<Submitted>true</Submitted>
</Response>
This version of the InviteUser command invites a user based on their ProfileEntity.
https://redcritterconnecter.com/services/gamificationv1/InviteUser?SecretKey={SecretKey}&ProfileEntity={ProfileEntity}
SecretKey | string | yes | This SecretKey is an App or App Domain Secret Key. If an App Secret Key is specified, your default App Domain will be assumed. If an App Domain Secret Key is specified, that App Domain will be used. |
ProfileEntity | string | yes | The ProfileEntity represents to whom the API call will apply. This can be an email address or a team name. Multiple email addresses or teams can be specified by separating them with a semicolon. Team names can be any string value other than an email address. If a team's profile does not exist, RedCritter will create one dynamically. |
Code Samples Javascript, C#
InviteUser with JavaScript
This is a minimal example of calling the InviteUser API via HTML and Javascript. Remember to never use your Secret Keys on the client side.
var connecterURL = "https://www.redcritterconnecter.com/";
function inviteUser(secretKey, profileEntity, cbSuccess, cbFail) {
$.getJSON(connecterURL + "services/gamificationv1/inviteUser?jsoncallback=?", { secretKey: secretKey, profileEntity: profileEntity },
function (data) {
if (data.Submitted) {
cbSuccess(data);
} else {
cbFail(data);
}
});
}
InviteUser with C#
This is a minmal example of calling the InviteUser API and parsing the JSON result into a populated C# object. This example uses asynchronous techniques to raise a callback when the response is received.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.Web; //Add reference to System.Web
using System.Runtime.Serialization.Json; //Add reference to System.Runtime.Serialization
namespace RedCritterConnecter.Samples
{
//Create a class to contain the response
public class InviteUserResponse
{
public String ErrorMessage { get; set; }
public Boolean Submitted { get; set; }
public String RequestID { get; set; }
public String APIVersion { get; set; }
public String ReturnParam1 { get; set; }
public String ReturnParam2 { get; set; }
public String ReturnParam3 { get; set; }
private Int32 ErrorCode { get; set; }
}
public class InviteUser
{
public delegate void OnInviteUserResponse(InviteUserResponse InviteUserResponse);
public event OnInviteUserResponse onInviteUserResponse;
public delegate void OnInviteUserResponseError(InviteUserResponse InviteUserResponse);
public event OnInviteUserResponseError onInviteUserResponseError;
const string CONST_ConnecterBaseURL = "https://www.redcritterconnecter.com/";
public void Execute(String SecretKey, String ProfileEntity)
{
try
{
//Create url encoded parameters in query string
String queryString = "secretkey=" + System.Web.HttpUtility.UrlEncode(SecretKey) + "&profileentity=" + System.Web.HttpUtility.UrlEncode(ProfileEntity);
//Create a new instance of a WebClient
WebClient wc = new System.Net.WebClient();
//Prevent this request from caching in order to ensure that it is sent to server
wc.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
//Attach an event handler to receive the response
wc.DownloadStringCompleted += onInviteUserResponseReceived;
//Make the call
wc.DownloadStringAsync(new Uri(CONST_ConnecterBaseURL + "services/gamificationv1/InviteUser?" + queryString, UriKind.Absolute));
}
catch
{
//Something went wrong communicating with the server
if (onInviteUserResponseError != null)
{
onInviteUserResponseError(null);
}
}
}
private void onInviteUserResponseReceived(object sender, DownloadStringCompletedEventArgs e)
{
try
{
//Create a JSON serializer
System.Runtime.Serialization.Json.DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(InviteUserResponse));
//Copy the string into a memory stream
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(e.Result));
//Read the stream into an object matching the response's type
InviteUserResponse InviteUserResponse = (InviteUserResponse)s.ReadObject(ms);
//Work with the populated response object
if (InviteUserResponse.Submitted == true)
{
//Request was accepted, raise the success event
onInviteUserResponse(InviteUserResponse);
}
else
{
//Something went wrong
if (onInviteUserResponseError != null)
{
//Request failed, raise the error event
onInviteUserResponseError(InviteUserResponse);
}
}
}
catch
{
//Something went wrong
onInviteUserResponseError(null);
}
}
}
}
Responses JSON, XML
JSON Response
{
"ErrorMessage": "",
"Submitted": true,
"RequestID": "2013-08-20 20:55:54.0260394",
"APIVersion": "1.0.0",
"ReturnParam1": "",
"ReturnParam2": "",
"ReturnParam3": "",
"ErrorCode": 0
}
XML Response
<Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="Connecter">
<APIVersion>1.0.0</APIVersion>
<ErrorCode>0</ErrorCode>
<ErrorMessage />
<RequestID>2013-08-20 20:56:34.7256203</RequestID>
<ReturnParam1 />
<ReturnParam2 />
<ReturnParam3 />
<Submitted>true</Submitted>
</Response>
This version of the InviteUser command invites a user based on their ProfileEntity and their App Domain.
https://redcritterconnecter.com/services/gamificationv1/InviteUser?SecretKey={SecretKey}&ProfileEntity={ProfileEntity}&ExternalAccountID={ExternalAccountID}&Language={Language}
SecretKey | string | yes | This SecretKey is an App Secret Key.The App Domain is determined by the External Account ID you provide. |
ProfileEntity | string | yes | The ProfileEntity represents to whom the API call will apply. This can be an email address or a team name. Multiple email addresses or teams can be specified by separating them with a semicolon. Team names can be any string value other than an email address. If a team's profile does not exist, RedCritter will create one dynamically. |
ExternalAccountID | string | yes | A unique ID for an App Domain that you create and manage. For example an App could have 2 App Domains managed separately by specifying an ExternalAccountID of 'Sales Dept' or 'IT Dept'. When passed as a parameter if the External Account ID does not exist. RedCritter Connecter will create a new App Domain on the fly with the ID that you specify. |
Language | string | yes | This specifies the language code to use such as en-us for US Engilish. |
Code Samples Javascript, C#
InviteUser with JavaScript
This is a minimal example of calling the InviteUser API via HTML and Javascript. Remember to never use your Secret Keys on the client side.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
<script type="text/javascript">
var connecterURL = "https://www.redcritterconnecter.com/";
function inviteUser(secretKey, profileEntity, externalAccountID, language, cbSuccess, cbFail) {
$.getJSON(connecterURL + "services/gamificationv1/inviteUser?jsoncallback=?", { secretKey: secretKey, profileEntity: profileEntity, externalAccountID:externalAccountID, language: language
},
function (data) {
if (data.Submitted) {
cbSuccess(data);
} else {
cbFail(data);
}
});
}
//My Success Callback
function onMyinviteUserSuccessHandler(data) {
//data is JSON response
alert("Request was successful");
}
//My Failure Callback
function onMyinviteUserFailHandler(data) {
//Something went wrong
alert("Something went wrong");
}
</script>
</head>
<body>
<table>
<tr>
<td>Secret Key</td>
<td>
<input type="text" id="tSecretKey" style="width: 500px" />
</td>
</tr>
<tr>
<td>Profile Entity</td>
<td>
<input type="text" id="tProfileEntity" />
</td>
</tr>
<tr>
<td>External Account ID</td>
<td>
<input type="text" id="tExternalAccountID" />
</td>
</tr>
<tr>
<td>Language</td>
<td>
<input type="text" id="tLanguage" />
</td>
</tr>
<tr>
<td></td>
<td>
<input type="button" onclick="inviteUser($('#tSecretKey').val(), $('#tProfileEntity').val(),$('#tExternalAccountID').val(), $('#tLanguage').val(), onMyinviteUserSuccessHandler,
onMyinviteUserFailHandler)" value="Invite User" /></td>
</tr>
</table>
</body>
</html>
InviteUser with C#
This is a minmal example of calling the InviteUSer API and parsing the JSON result into a populated C# object. This example uses asynchronous techniques to raise a callback when the response is received.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.IO;
using System.Web; //Add reference to System.Web
using System.Runtime.Serialization.Json; //Add reference to System.Runtime.Serialization
namespace RedCritterConnecter.Samples
{
//Create a class to contain the response
public class InviteUserResponse
{
public String ErrorMessage { get; set; }
public Boolean Submitted { get; set; }
public String RequestID { get; set; }
public String APIVersion { get; set; }
public String ReturnParam1 { get; set; }
public String ReturnParam2 { get; set; }
public String ReturnParam3 { get; set; }
private Int32 ErrorCode { get; set; }
}
public class InviteUser
{
public delegate void OnInviteUserResponse(InviteUserResponse InviteUserResponse);
public event OnInviteUserResponse onInviteUserResponse;
public delegate void OnInviteUserResponseError(InviteUserResponse InviteUserResponse);
public event OnInviteUserResponseError onInviteUserResponseError;
const string CONST_ConnecterBaseURL = "https://www.redcritterconnecter.com/";
public void Execute(String SecretKey, String ProfileEntity, String ExternalAccountID, String Language)
{
try
{
//Create url encoded parameters in query string
String queryString = "secretkey=" + System.Web.HttpUtility.UrlEncode(SecretKey) + "&profileentity=" + System.Web.HttpUtility.UrlEncode(ProfileEntity) + "&externalaccountid=" + System.Web.HttpUtility.UrlEncode(ExternalAccountID) + "&Language=" + System.Web.HttpUtility.UrlEncode(Language);
//Create a new instance of a WebClient
WebClient wc = new System.Net.WebClient();
//Prevent this request from caching in order to ensure that it is sent to server
wc.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
//Attach an event handler to receive the response
wc.DownloadStringCompleted += onInviteUserResponseReceived;
//Make the call
wc.DownloadStringAsync(new Uri(CONST_ConnecterBaseURL + "services/gamificationv1/InviteUser?" + queryString, UriKind.Absolute));
}
catch
{
//Something went wrong communicating with the server
if (onInviteUserResponseError != null)
{
onInviteUserResponseError(null);
}
}
}
private void onInviteUserResponseReceived(object sender, DownloadStringCompletedEventArgs e)
{
try
{
//Create a JSON serializer
System.Runtime.Serialization.Json.DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(InviteUserResponse));
//Copy the string into a memory stream
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(e.Result));
//Read the stream into an object matching the response's type
InviteUserResponse InviteUserResponse = (InviteUserResponse)s.ReadObject(ms);
//Work with the populated response object
if (InviteUserResponse.Submitted == true)
{
//Request was accepted, raise the success event
onInviteUserResponse(InviteUserResponse);
}
else
{
//Something went wrong
if (onInviteUserResponseError != null)
{
//Request failed, raise the error event
onInviteUserResponseError(InviteUserResponse);
}
}
}
catch
{
//Something went wrong
onInviteUserResponseError(null);
}
}
}
}
Responses JSON, XML
JSON Response
{
"ErrorMessage": "",
"Submitted": true,
"RequestID": "2013-08-20 20:55:54.0260394",
"APIVersion": "1.0.0",
"ReturnParam1": "",
"ReturnParam2": "",
"ReturnParam3": "",
"ErrorCode": 0
}
XML Response
<Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="Connecter">
<APIVersion>1.0.0</APIVersion>
<ErrorCode>0</ErrorCode>
<ErrorMessage />
<RequestID>2013-08-20 20:56:34.7256203</RequestID>
<ReturnParam1 />
<ReturnParam2 />
<ReturnParam3 />
<Submitted>true</Submitted>
</Response>
|
Use |
Runtime |
Method |
HTTP GET |
Invites User |
Yes |
Billable |
Yes |
Response |
JSON,XML |
API Version |
1 |
|