Sample code for 30+ languages & platforms
Swift Requires Chilkat v11.0.0+

Upload Media to Twitter

Demonstrates uploading image or video files to Twitter. After uploading, the media_id can be used to attach the uploaded media to a tweet.

This example is deprecated and no longer valid.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    //  It requires the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    //  Assume we've previously obtained an access token and saved it to a JSON file..
    let jsonToken = CkoJsonObject()!
    success = jsonToken.loadFile(path: "qa_data/tokens/twitter.json")

    let http = CkoHttp()!

    //  Provide the OAuth 1.0a credentials:
    http.oAuth1 = true
    http.oAuthConsumerKey = "TWITTER_CONSUMER_KEY"
    http.oAuthConsumerSecret = "TWITTER_CONSUMER_SECRET"
    http.oAuthToken = jsonToken.string(of: "oauth_token")
    http.oAuthTokenSecret = jsonToken.string(of: "oauth_token_secret")

    let req = CkoHttpRequest()!
    req.httpVerb = "POST"
    req.contentType = "multipart/form-data"
    req.path = "/1.1/media/upload.json"

    req.addHeader(name: "Expect", value: "100-continue")

    //  Add a JPEG image file to the upload.
    let fac = CkoFileAccess()!
    var jpgBytes: NSData
    jpgBytes = fac.readEntireFile(path: "qa_data/jpg/starfish.jpg")
    req.addBytes(forUpload: "media", filename: "starfish.jpg", byteData: jpgBytes)

    let resp = CkoHttpResponse()!
    success = http.httpSReq(domain: "upload.twitter.com", port: 443, ssl: true, request: req, response: resp)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    let jsonResponse = CkoJsonObject()!
    jsonResponse.emitCompact = false
    jsonResponse.load(json: resp.bodyStr)

    if resp.statusCode.intValue != 200 {
        print("\(jsonResponse.emit()!)")
        return
    }

    //  Show the successful response:
    print("\(jsonResponse.emit()!)")
    print("Success.")

    //  A successful JSON response looks like this:

    //  	{
    //  	  "media_id": 793137045996646400,
    //  	  "media_id_string": "793137045996646400",
    //  	  "size": 6229,
    //  	  "expires_after_secs": 86400,
    //  	  "image": {
    //  	    "image_type": "image\/jpeg",
    //  	    "w": 120,
    //  	    "h": 120
    //  	  }
    //  	}
    //  

    //  Get the information from the JSON:
    print("media_id_string = \(jsonResponse.string(of: "media_id_string")!)")
    print("size = \(jsonResponse.int(of: "size").intValue)")
    print("image_type = \(jsonResponse.string(of: "image.image_type")!)")
    print("height/width = \(jsonResponse.int(of: "image.w").intValue),\(jsonResponse.int(of: "image.h").intValue)")

}