Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) Twitter Tweet with an ImageExample to post a status update with an associated image/photo (or video).
load ./chilkat.dll # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # ---------------------------------------------------------------------- # This initial setup, which involves setting the OAuth1 properties and connecting # to api.twitter.com, is only required once at the beginning. Once connected, the same # object instance may be re-used, and if necessary, it will automatically reconnect # as needed. # Assume we've previously obtained an access token and saved it to a JSON file.. set json [new_CkJsonObject] set success [CkJsonObject_LoadFile $json "qa_data/tokens/twitter.json"] set rest [new_CkRest] set oauth1 [new_CkOAuth1] CkOAuth1_put_ConsumerKey $oauth1 "TWITTER_CONSUMER_KEY" CkOAuth1_put_ConsumerSecret $oauth1 "TWITTER_CONSUMER_SECRET" CkOAuth1_put_Token $oauth1 [CkJsonObject_stringOf $json "oauth_token"] CkOAuth1_put_TokenSecret $oauth1 [CkJsonObject_stringOf $json "oauth_token_secret"] CkOAuth1_put_SignatureMethod $oauth1 "HMAC-SHA1" CkOAuth1_GenNonce $oauth1 16 CkRest_SetAuthOAuth1 $rest $oauth1 0 set bAutoReconnect 1 set success [CkRest_Connect $rest "api.twitter.com" 443 1 $bAutoReconnect] if {$success != 1} then { puts [CkRest_lastErrorText $rest] delete_CkJsonObject $json delete_CkRest $rest delete_CkOAuth1 $oauth1 exit } # This ends the initial setup... # ---------------------------------------------------------------------- set tweetContent "This is a test tweet with an image." # Send a tweet... CkRest_ClearAllQueryParams $rest CkRest_AddQueryParam $rest "status" $tweetContent # Add list of media_ids to associate with the Tweet. # You may include up to 4 photos or 1 animated GIF or 1 video in a Tweet. # The image needs to have been previously uploaded. The upload response gave us # the media ID we'll use to associate this tweet with the image (or video) # See Twitter Upload Media for sample code. # This example will add just a single image/photo. CkRest_AddQueryParam $rest "media_ids" "793137045996646400" set resp [CkRest_fullRequestFormUrlEncoded $rest "POST" "/1.1/statuses/update.json"] if {[CkRest_get_LastMethodSuccess $rest] != 1} then { puts [CkRest_lastErrorText $rest] delete_CkJsonObject $json delete_CkRest $rest delete_CkOAuth1 $oauth1 exit } set jsonResponse [new_CkJsonObject] CkJsonObject_put_EmitCompact $jsonResponse 0 CkJsonObject_Load $jsonResponse $resp if {[CkRest_get_ResponseStatusCode $rest] != 200} then { puts [CkJsonObject_emit $jsonResponse] delete_CkJsonObject $json delete_CkRest $rest delete_CkOAuth1 $oauth1 delete_CkJsonObject $jsonResponse exit } # Show the successful response: puts [CkJsonObject_emit $jsonResponse] puts "Success." # A successful JSON response looks like this: # { # "created_at": "Mon Oct 31 20:25:17 +0000 2016", # "id": 793187104528347136, # "id_str": "793187104528347136", # "text": "This is a test tweet with an image. https:\/\/t.co\/4mcCL0k36x", # "truncated": false, # "entities": { # "hashtags": [ # ], # "symbols": [ # ], # "user_mentions": [ # ], # "urls": [ # ], # "media": [ # { # "id": 793137045996646400, # "id_str": "793137045996646400", # "indices": [ # 36, # 59 # ], # "media_url": "http:\/\/pbs.twimg.com\/media\/CwHJ8OzVMAAojGR.jpg", # "media_url_https": "https:\/\/pbs.twimg.com\/media\/CwHJ8OzVMAAojGR.jpg", # "url": "https:\/\/t.co\/4mcCL0k36x", # "display_url": "pic.twitter.com\/4mcCL0k36x", # "expanded_url": "https:\/\/twitter.com\/chilkatsoft\/status\/793187104528347136\/photo\/1", # "type": "photo", # "sizes": { # "large": { # "w": 120, # "h": 120, # "resize": "fit" # }, # "medium": { # "w": 120, # "h": 120, # "resize": "fit" # }, # "thumb": { # "w": 120, # "h": 120, # "resize": "crop" # }, # "small": { # "w": 120, # "h": 120, # "resize": "fit" # } # } # } # ] # }, # "extended_entities": { # "media": [ # { # "id": 793137045996646400, # "id_str": "793137045996646400", # "indices": [ # 36, # 59 # ], # "media_url": "http:\/\/pbs.twimg.com\/media\/CwHJ8OzVMAAojGR.jpg", # "media_url_https": "https:\/\/pbs.twimg.com\/media\/CwHJ8OzVMAAojGR.jpg", # "url": "https:\/\/t.co\/4mcCL0k36x", # "display_url": "pic.twitter.com\/4mcCL0k36x", # "expanded_url": "https:\/\/twitter.com\/chilkatsoft\/status\/793187104528347136\/photo\/1", # "type": "photo", # "sizes": { # "large": { # "w": 120, # "h": 120, # "resize": "fit" # }, # "medium": { # "w": 120, # "h": 120, # "resize": "fit" # }, # "thumb": { # "w": 120, # "h": 120, # "resize": "crop" # }, # "small": { # "w": 120, # "h": 120, # "resize": "fit" # } # } # } # ] # }, # "source": "\u003ca href=\"https:\/\/www.chilkatsoft.com\/\" rel=\"nofollow\"\u003eChilkatTestApp\u003c\/a\u003e", # "in_reply_to_status_id": null, # "in_reply_to_status_id_str": null, # "in_reply_to_user_id": null, # "in_reply_to_user_id_str": null, # "in_reply_to_screen_name": null, # "user": { # "id": 85647455, # "id_str": "85647455", # "name": "Chilkat Software", # "screen_name": "chilkatsoft", # "location": "", # "description": "", # "url": "https:\/\/t.co\/hSTR4sOuis", # "entities": { # "url": { # "urls": [ # { # "url": "https:\/\/t.co\/hSTR4sOuis", # "expanded_url": "http:\/\/www.chilkatsoft.com", # "display_url": "chilkatsoft.com", # "indices": [ # 0, # 23 # ] # } # ] # }, # "description": { # "urls": [ # ] # } # }, # "protected": false, # "followers_count": 41, # "friends_count": 0, # "listed_count": 4, # "created_at": "Tue Oct 27 19:56:13 +0000 2009", # "favourites_count": 0, # "utc_offset": null, # "time_zone": null, # "geo_enabled": false, # "verified": false, # "statuses_count": 16, # "lang": "en", # "contributors_enabled": false, # "is_translator": false, # "is_translation_enabled": false, # "profile_background_color": "C0DEED", # "profile_background_image_url": "http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png", # "profile_background_image_url_https": "https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png", # "profile_background_tile": false, # "profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/785893001012744195\/clLweDSg_normal.jpg", # "profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/785893001012744195\/clLweDSg_normal.jpg", # "profile_link_color": "0084B4", # "profile_sidebar_border_color": "C0DEED", # "profile_sidebar_fill_color": "DDEEF6", # "profile_text_color": "333333", # "profile_use_background_image": true, # "has_extended_profile": false, # "default_profile": true, # "default_profile_image": false, # "following": false, # "follow_request_sent": false, # "notifications": false, # "translator_type": "none" # }, # "geo": null, # "coordinates": null, # "place": null, # "contributors": null, # "is_quote_status": false, # "retweet_count": 0, # "favorite_count": 0, # "favorited": false, # "retweeted": false, # "possibly_sensitive": false, # "lang": "en" # } # delete_CkJsonObject $json delete_CkRest $rest delete_CkOAuth1 $oauth1 delete_CkJsonObject $jsonResponse |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.