Swift Requires Chilkat v11.0.0+
Swift
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
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)")
}