PowerShell Requires Chilkat v11.5.0+
PowerShell
Box: Refresh and Save Rotated OAuth Tokens
See more Box Examples
Refresh the user token saved by the authorization example. Box refresh tokens are single-use and expire after 60 days. Serialize refreshes for a token pair and save the replacement immediately; do not run concurrent refresh jobs.
See the Box API guide for setup and the complete workflow.
Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# Requires Chilkat 11.5.0 or later and a previously unlocked Chilkat bundle.
# See Global Unlock Sample.
# Guide: Box API Guide.
$success = $false
$tokens = New-Object Chilkat.JsonObject
$success = $tokens.LoadFile("qa_data/tokens/box_oauth.json")
if ($success -ne $true) {
$($tokens.LastErrorText)
exit
}
$oauth2 = New-Object Chilkat.OAuth2
$oauth2.TokenEndpoint = "https://api.box.com/oauth2/token"
$oauth2.ClientId = "BOX_CLIENT_ID"
$oauth2.ClientSecret = "BOX_CLIENT_SECRET"
$oauth2.RefreshToken = $tokens.StringOf("refresh_token")
$success = $oauth2.RefreshAccessToken()
if ($success -ne $true) {
$($oauth2.LastErrorText)
exit
}
$success = $tokens.Load($oauth2.AccessTokenResponse)
if ($success -ne $true) {
$($tokens.LastErrorText)
exit
}
# The previous refresh token is now invalid. Preserve this response even if
# your normal token-store write fails. Do not retry with the old refresh token.
$success = $tokens.WriteFile("qa_data/tokens/box_oauth.json")
if ($success -ne $true) {
$($tokens.LastErrorText)
exit
}
$("New access and refresh tokens saved. Do not log their values.")