Tcl
Tcl
Facebook Upload Photo from Local File
See more Facebook Examples
Uploads a new photo with a caption from a local file.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example assumes Chilkat HTTP to have been previously unlocked.
# See Global Unlock Sample for sample code.
set http [new_CkHttp]
set req [new_CkHttpRequest]
CkHttpRequest_put_HttpVerb $req "POST"
CkHttpRequest_put_ContentType $req "multipart/form-data"
CkHttpRequest_put_Path $req "/v2.7/me/photos"
# Use the previously obtained access token.
# Note: The publish_actions scope is required to upload a photo.
CkHttpRequest_AddHeader $req "Authorization" "Bearer FACEBOOK-ACCESS-TOKEN"
# Send an "Expect: 100-continue" header in the request.
# This causes the HTTP server to end a 100-continue response
# immediately after receiving the HTTP header. The client
# (Chilkat) will receive this intermediate response, and if
# it's not an error response, it knows that the HTTP server will
# accept the data that is forthcoming.
# The alternative is to get an error response after trying to upload
# the entire contents of the files.
CkHttpRequest_AddHeader $req "Expect" "100-continue"
# Set a photo caption.
CkHttpRequest_AddParam $req "caption" "Here are some penguins!"
# Additional parameters can be added to the request by
# calling AddParam once per parameter.
# See https://developers.facebook.com/docs/graph-api/reference/user/photos
# for more information about other optional parameters.
# Indicate the local file to be uploaded.
set success [CkHttpRequest_AddFileForUpload $req "source" "qa_data/jpg/penguins2.jpg"]
if {$success == 0} then {
puts [CkHttpRequest_lastErrorText $req]
delete_CkHttp $http
delete_CkHttpRequest $req
exit
}
# Upload the image file..
set resp [new_CkHttpResponse]
set success [CkHttp_HttpSReq $http "graph.facebook.com" 443 1 $req $resp]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkHttpRequest $req
delete_CkHttpResponse $resp
exit
}
# Examine the response body:
set responseJson [CkHttpResponse_bodyStr $resp]
puts "$responseJson"
# The response contains JSON, such as this:
# {"id":"10210224963435862","post_id":"10224048320139890_10210224963435862"}
delete_CkHttp $http
delete_CkHttpRequest $req
delete_CkHttpResponse $resp