Visual FoxPro Requires Chilkat v11.0.0+
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loJsonToken
LOCAL loHttp
LOCAL loReq
LOCAL loFac
LOCAL loJpgBytes
LOCAL loResp
LOCAL loJsonResponse
lnSuccess = 0
* 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..
loJsonToken = CreateObject('Chilkat.JsonObject')
lnSuccess = loJsonToken.LoadFile("qa_data/tokens/twitter.json")
loHttp = CreateObject('Chilkat.Http')
* Provide the OAuth 1.0a credentials:
loHttp.OAuth1 = 1
loHttp.OAuthConsumerKey = "TWITTER_CONSUMER_KEY"
loHttp.OAuthConsumerSecret = "TWITTER_CONSUMER_SECRET"
loHttp.OAuthToken = loJsonToken.StringOf("oauth_token")
loHttp.OAuthTokenSecret = loJsonToken.StringOf("oauth_token_secret")
loReq = CreateObject('Chilkat.HttpRequest')
loReq.HttpVerb = "POST"
loReq.ContentType = "multipart/form-data"
loReq.Path = "/1.1/media/upload.json"
loReq.AddHeader("Expect","100-continue")
* Add a JPEG image file to the upload.
loFac = CreateObject('Chilkat.FileAccess')
loJpgBytes = loFac.ReadEntireFile("qa_data/jpg/starfish.jpg")
loReq.AddBytesForUpload("media","starfish.jpg",loJpgBytes)
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpSReq("upload.twitter.com",443,1,loReq,loResp)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loJsonToken
RELEASE loHttp
RELEASE loReq
RELEASE loFac
RELEASE loResp
CANCEL
ENDIF
loJsonResponse = CreateObject('Chilkat.JsonObject')
loJsonResponse.EmitCompact = 0
loJsonResponse.Load(loResp.BodyStr)
IF (loResp.StatusCode <> 200) THEN
? loJsonResponse.Emit()
RELEASE loJsonToken
RELEASE loHttp
RELEASE loReq
RELEASE loFac
RELEASE loResp
RELEASE loJsonResponse
CANCEL
ENDIF
* Show the successful response:
? loJsonResponse.Emit()
? "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:
? "media_id_string = " + loJsonResponse.StringOf("media_id_string")
? "size = " + STR(loJsonResponse.IntOf("size"))
? "image_type = " + loJsonResponse.StringOf("image.image_type")
? "height/width = " + STR(loJsonResponse.IntOf("image.w")) + "," + STR(loJsonResponse.IntOf("image.h"))
RELEASE loJsonToken
RELEASE loHttp
RELEASE loReq
RELEASE loFac
RELEASE loResp
RELEASE loJsonResponse