VBScript Requires Chilkat v11.5.0+
VBScript
Box: Authorize a User with OAuth 2.0
See more Box Examples
Interactive local-development example using a browser and a loopback callback. Register exactly http://localhost:3017/ in the Box User app. Run this in a trusted environment that can hold the client secret. A deployed web app must handle its registered HTTPS callback on the server.
See the Box API guide for setup and the complete workflow.
Chilkat VBScript Downloads
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
'Create a Unicode (utf-16) output text file.
Set outFile = fso.CreateTextFile("output.txt", True, True)
success = 0
' Requires Chilkat 11.5.0 or later and a previously unlocked Chilkat bundle.
' See Global Unlock Sample.
' Guide: Box API Guide.
success = 0
set oauth2 = CreateObject("Chilkat.OAuth2")
oauth2.ListenPort = 3017
oauth2.AuthorizationEndpoint = "https://account.box.com/api/oauth2/authorize"
oauth2.TokenEndpoint = "https://api.box.com/oauth2/token"
oauth2.ClientId = "BOX_CLIENT_ID"
oauth2.ClientSecret = "BOX_CLIENT_SECRET"
' Use Box's documented confidential-client authorization-code flow.
oauth2.CodeChallenge = 0
url = oauth2.StartAuth()
If (oauth2.LastMethodSuccess <> 1) Then
outFile.WriteLine(oauth2.LastErrorText)
WScript.Quit
End If
success = oauth2.LaunchBrowser(url)
If (success <> 1) Then
outFile.WriteLine(oauth2.LastErrorText)
WScript.Quit
End If
elapsedMs = 0
Do While (elapsedMs < 120000) And (oauth2.AuthFlowState < 3)
oauth2.SleepMs 100
elapsedMs = elapsedMs + 100
Loop
If (oauth2.AuthFlowState < 3) Then
success = oauth2.Cancel()
outFile.WriteLine("Authorization timed out.")
WScript.Quit
End If
If (oauth2.AuthFlowState <> 3) Then
outFile.WriteLine("Authorization was denied or failed. State: " & oauth2.AuthFlowState)
WScript.Quit
End If
' Retain both tokens in your application's protected token store.
' The variables below are deliberately not printed.
accessToken = oauth2.AccessToken
refreshToken = oauth2.RefreshToken
' For this local-development example only, save in a directory restricted to this user.
' Create qa_data/tokens before running; never put this file under a web root.
set tokens = CreateObject("Chilkat.JsonObject")
success = tokens.Load(oauth2.AccessTokenResponse)
If (success <> 1) Then
outFile.WriteLine(tokens.LastErrorText)
WScript.Quit
End If
success = tokens.WriteFile("qa_data/tokens/box_oauth.json")
If (success <> 1) Then
outFile.WriteLine(tokens.LastErrorText)
WScript.Quit
End If
outFile.WriteLine("Authorization complete; token response saved in the protected local token file.")
outFile.Close