Sample code for 30+ languages & platforms
Swift

UPS OAuth2 Client Credentials

See more UPS Examples

Get an OAuth2 access token for the UPS REST API using the client credentials flow (no interactivity with a web browser required).

Chilkat Swift Downloads

Swift

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 -i -X POST \
    //   -u 2498righ8wr6aihe98rt8rhowirtyw9er6twe80rtywrehrt:nerf254578uh8rgt7y3h57358ouyth387h8h53h6yyh80hh578per9y7u5ruyuy4 \
    //   https://wwwcie.ups.com/security/v1/oauth/token \
    //   -H 'Content-Type: application/x-www-form-urlencoded' \
    //   -H 'x-merchant-id: 7B3027' \
    //   -d grant_type=client_credentials

    // Use the following online tool to generate HTTP code from a CURL command
    // Convert a cURL Command to HTTP Source Code

    http.basicAuth = true
    http.login = "2498righ8wr6aihe98rt8rhowirtyw9er6twe80rtywrehrt"
    http.password = "nerf254578uh8rgt7y3h57358ouyth387h8h53h6yyh80hh578per9y7u5ruyuy4"

    let req = CkoHttpRequest()!
    req.addParam(name: "grant_type", value: "client_credentials")

    req.addHeader(name: "x-merchant-id", value: "7B3027")

    req.httpVerb = "POST"
    req.contentType = "application/x-www-form-urlencoded"

    let resp = CkoHttpResponse()!
    success = http.httpReq(url: "https://wwwcie.ups.com/security/v1/oauth/token", request: req, 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
    }

    // Save the OAuth2 access token for other examples to use.
    jResp.writeFile(path: "qa_data/tokens/ups_oauth2_token.json")

    // If successful, the OAuth2 access token JSON looks like this:

    // {
    //   "token_type": "Bearer",
    //   "issued_at": "1686911985606",
    //   "client_id": "2498righ8wr6aihe98rt8rhowirtyw9er6twe80rtywrehrt",
    //   "access_token": "eyJraW......R2sbqrY",
    //   "expires_in": "14399",
    //   "status": "approved"
    // }

    var token_type: String? = jResp.string(of: "token_type")
    var issued_at: String? = jResp.string(of: "issued_at")
    var client_id: String? = jResp.string(of: "client_id")
    var access_token: String? = jResp.string(of: "access_token")
    var expires_in: String? = jResp.string(of: "expires_in")
    var status: String? = jResp.string(of: "status")

}