Created
June 13, 2025 00:19
-
-
Save wvpv/7e927e20075b6d0e0e570926af2781e8 to your computer and use it in GitHub Desktop.
DataTable AJAX Example - Handler
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<script runat="server" language="javascript"> | |
Platform.Load("core","1"); | |
Platform.Response.SetResponseHeader("Connect","Keep-Alive"); | |
Platform.Response.SetResponseHeader("Keep-Alive","timeout=40, max=200"); | |
var page = Request.GetQueryStringParameter("page"); | |
page = page ? page : 1; | |
var pageSize = Request.GetQueryStringParameter("pageSize"); | |
pageSize = pageSize ? pageSize : 20; | |
var results = {}; | |
results.error = {} | |
var sourceDEName = "YOURDENAMEHERE"; | |
var sourceDEKey = "YOURDEKEYHERE"; | |
// get rowcount via AMPscript function | |
var rowCount = Platform.Function.TreatAsContent("%"+"%"+"=DataExtensionRowCount"+"(\""+sourceDEName+"\")="+"%"+"%"); | |
results.recordsTotal = rowCount | |
results.recordsFiltered = rowCount | |
results.data = [] | |
// API CONFIGURATION | |
var clientId = "YOURCLIENTIDHERE"; | |
var clientSecret = "YOURSECRETHERE"; | |
var tenant = "YOURTENANTHERE"; | |
var mid = Platform.Function.AuthenticatedMemberID(); | |
var authURL = "https://" + tenant + ".auth.marketingcloudapis.com/v2/token"; | |
var endPoint = "https://" + tenant + ".rest.marketingcloudapis.com/"; | |
var objectType = "DataExtensionObject[" + sourceDEKey + "]"; | |
var cols = ["SubscriberKey", "EmailAddress", "FirstName", "LastName"]; | |
var filter = []; | |
var opts = { BatchSize: pageSize }; | |
var props = {}; | |
// authenticate | |
var accessToken = "" | |
var result0; | |
var result; | |
try { | |
accessToken = getAccessToken(clientId, clientSecret, mid, authURL); | |
var url = endPoint + "data/v1/customobjectdata/key/" + sourceDEKey + "/rowset?$pageSize=" + pageSize + "&$page=" + page; | |
var headerNames = ["Authorization"]; | |
var headerValues = ["Bearer " + accessToken]; | |
result0 = HTTP.Get(url, headerNames, headerValues); | |
result = Platform.Function.ParseJSON(result0.Content); | |
} catch (e) { | |
results.error = Stringify(e) | |
} | |
for (var i = 0; i < result.items.length; i++) { | |
var row = {} | |
row.SubscriberKey = result.items[i].keys.subscriberkey | |
row.EmailAddress = result.items[i].values.emailaddress | |
row.FirstName = result.items[i].values.firstname | |
row.LastName = result.items[i].values.lastname | |
results.data.push(row) | |
} | |
function getAccessToken(clientId, clientSecret, mid, authURL) { | |
var accessToken = ""; | |
if (clientId != "" && clientSecret != "" && mid != "" && authURL !="") { | |
var payload = { | |
"grant_type": "client_credentials", | |
"client_id": clientId, | |
"client_secret": clientSecret, | |
"account_id": mid | |
}; | |
var contentType = "application/json"; | |
var result = HTTP.Post(authURL, contentType, Stringify(payload), null, null); | |
accessToken = Platform.Function.ParseJSON(result["Response"][0]).access_token; | |
} | |
return accessToken | |
} | |
Write(Stringify(results)); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment