screnshaw
01/17/2023, 4:43 PMAnthony OConnor
01/17/2023, 5:07 PMdynamicl
01/17/2023, 6:01 PMcls
Add-Type -AssemblyName System.Web
## USER SETTINGS START ##############################################################################################
$nsUrlInstanceName = "" #example: 12345-SB1
$nsRealm = "" #example: 12345_SB1
$nsDeployId = "" #example: 1
$nsScriptId = "" #example: 123
$oauth_consumer_key = ""
$oauth_consumer_secret = ""
$oauth_token = ""
$oauth_token_secret = ""
## USER SETTINGS END ##############################################################################################
function EncodeToUpper
{
param($value)
return $value.Replace("%2a","%2A").Replace("%2b","%2B").Replace("%2c","%2C").Replace("%2d","%2D").Replace("%2e","%2E").Replace("%2f","%2F").Replace("%3a","%3A").Replace("%3b","%3B").Replace("%3c","%3C").Replace("%3d","%3D").Replace("%3e","%3E").Replace("%3f","%3F")
}
$oauth_nonce = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.DateTime]::Now.Ticks.ToString()))
$oauth_timestamp = [long](([datetime]::UtcNow)-(Get-Date "1970-01-01")).TotalSeconds
$baseUrl = 'https://'+$nsUrlInstanceName+'.<http://restlets.api.netsuite.com/app/site/hosting/restlet.nl|restlets.api.netsuite.com/app/site/hosting/restlet.nl>'
$fullUrl = $baseUrl + '?script='+$nsScriptId+'&deploy='+$nsDeployId
$baseUrlEncoded = [System.Web.HttpUtility]::UrlEncode($baseUrl)
$baseUrlEncoded = EncodeToUpper $baseUrlEncoded
#sort param names lexicographically
$params = "deploy=$nsDeployId&oauth_consumer_key=$oauth_consumer_key&oauth_nonce=$oauth_nonce&oauth_signature_method=HMAC-SHA256&oauth_timestamp=$oauth_timestamp&oauth_token=$oauth_token&oauth_version=1.0&script=$nsScriptId"
$paramsEncoded = [System.Web.HttpUtility]::UrlEncode($params)
$paramsEncoded = EncodeToUpper $paramsEncoded
$message = 'GET&'+$baseUrlEncoded+'&'+$paramsEncoded
$key = $oauth_consumer_secret + "&" + $oauth_token_secret
$hmac = New-Object System.Security.Cryptography.HMACSHA256
$hmac.Key = [System.Text.Encoding]::ASCII.GetBytes($key)
$signature = [System.Convert]::ToBase64String($hmac.ComputeHash([System.Text.Encoding]::ASCII.GetBytes($message)))
$signature = [System.Web.HttpUtility]::UrlEncode($signature)
$signature = EncodeToUpper $signature
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Content-Type", "application/json")
$headers.Add("Authorization", 'OAuth realm="'+$nsRealm+'", oauth_consumer_key="'+$oauth_consumer_key+'", oauth_token="'+$oauth_token+'", oauth_signature_method="HMAC-SHA256", oauth_timestamp="'+$oauth_timestamp+'", oauth_nonce="'+$oauth_nonce+'", oauth_version="1.0", oauth_signature="'+$signature+'"')
$response = Invoke-RestMethod $fullUrl -Method 'GET' -Headers $headers
$response | ConvertTo-Json
Shawn Talbert
01/17/2023, 6:24 PMscrenshaw
01/17/2023, 6:30 PMscrenshaw
01/17/2023, 6:42 PMAnthony OConnor
01/17/2023, 6:42 PMscrenshaw
01/17/2023, 6:53 PMdynamicl
01/17/2023, 6:55 PMdynamicl
01/17/2023, 6:58 PMdynamicl
01/17/2023, 6:59 PMdynamicl
01/17/2023, 7:00 PMscrenshaw
01/17/2023, 7:02 PMdynamicl
01/17/2023, 7:02 PMdynamicl
01/17/2023, 7:03 PMscrenshaw
01/17/2023, 7:03 PMdynamicl
01/17/2023, 7:11 PMdynamicl
01/17/2023, 7:12 PMscrenshaw
01/17/2023, 7:12 PMscrenshaw
01/17/2023, 7:15 PMdynamicl
01/17/2023, 7:16 PMscrenshaw
01/17/2023, 7:18 PMdynamicl
01/17/2023, 7:21 PMdynamicl
01/17/2023, 7:21 PMscrenshaw
01/17/2023, 7:22 PMscrenshaw
01/17/2023, 7:23 PMdynamicl
01/17/2023, 7:26 PMscrenshaw
01/17/2023, 7:28 PMscrenshaw
01/17/2023, 7:28 PMdynamicl
01/17/2023, 7:32 PMscrenshaw
01/17/2023, 7:32 PMdynamicl
01/17/2023, 7:40 PMdynamicl
01/17/2023, 7:42 PMscrenshaw
01/17/2023, 7:43 PMscrenshaw
01/17/2023, 7:44 PMbattk
01/17/2023, 8:47 PMscrenshaw
01/17/2023, 8:54 PMbattk
01/17/2023, 8:55 PMscrenshaw
01/17/2023, 8:57 PMbattk
01/17/2023, 8:58 PMscrenshaw
01/17/2023, 8:59 PMbattk
01/17/2023, 9:00 PMbattk
01/17/2023, 9:00 PMscrenshaw
01/17/2023, 9:02 PMscrenshaw
01/17/2023, 9:03 PMbattk
01/17/2023, 9:13 PMbattk
01/17/2023, 9:13 PMscrenshaw
01/17/2023, 9:13 PMscrenshaw
01/17/2023, 9:16 PMscrenshaw
01/17/2023, 9:19 PMdynamicl
01/17/2023, 9:22 PMscrenshaw
01/17/2023, 9:26 PM