Swift
Swift
Refresh WiX Access Token
See more WiX Examples
Request a new access token each time you call a WiX API. Use the refresh token together with your secret key, to request refresh tokensChilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let http = CkoHttp()!
// Implements the following CURL command:
// curl -X POST \
// https://www.wix.com/oauth/access \
// -H 'Content-Type: application/json' \
// -d '{
// "grant_type": "refresh_token",
// "client_id": <CLIENT_ID>,
// "client_secret": <CLIENT_SECRET>,
// "refresh_token": <REFRESH_TOKEN>
// }'
// It is assumed we previously obtained an OAuth2 access token.
// This example loads the JSON access token file
// saved by this example: Get WiX OAuth2 Access Token
let jsonToken = CkoJsonObject()!
success = jsonToken.loadFile(path: "qa_data/tokens/wix.json")
if success != true {
print("Failed to load square.json")
return
}
// Get the "refresh_token"
var refreshToken: String? = jsonToken.string(of: "refresh_token")
// The following JSON is sent in the request body.
// {
// "grant_type": "refresh_token",
// "client_id": <APP_ID>,
// "client_secret": <APP_SECRET>,
// "refresh_token": <REFRESH_TOKEN>
// }
let json = CkoJsonObject()!
json.updateString(jsonPath: "grant_type", value: "refresh_token")
json.updateString(jsonPath: "client_id", value: "CLIENT_ID")
json.updateString(jsonPath: "client_secret", value: "CLIENT_SECRET")
json.updateString(jsonPath: "refresh_token", value: refreshToken)
let resp = CkoHttpResponse()!
success = http.httpJson(verb: "POST", url: "https://www.wix.com/oauth/access", json: json, contentType: "application/json", response: resp)
if success == false {
print("\(http.lastErrorText!)")
return
}
let sbResponseBody = CkoStringBuilder()!
resp.getBodySb(sb: sbResponseBody)
let jResp = CkoJsonObject()!
jResp.loadSb(sb: sbResponseBody)
jResp.emitCompact = false
print("Response Body:")
print("\(jResp.emit()!)")
var respStatusCode: Int = resp.statusCode.intValue
print("Response Status Code = \(respStatusCode)")
if respStatusCode >= 400 {
print("Response Header:")
print("\(resp.header!)")
print("Failed.")
return
}
// Sample JSON response:
// {
// "refresh_token": "OAUTH2.eyJraWQ ... vnB4cQ",
// "access_token": "OAUTH2.eyJra ... la18lrw"
// }
var refresh_token: String? = jResp.string(of: "refresh_token")
var access_token: String? = jResp.string(of: "access_token")
// Save the new JSON access token response to a file.
sbResponseBody.writeFile(path: "qa_data/tokens/wix.json", charset: "utf-8", emitBom: false)
}