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
(PureBasic) Twitter - Tweet with Multiple ImagesExample to post a status update with multiple associated images/photos (or videos).
IncludeFile "CkRest.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkOAuth1.pb" Procedure ChilkatExample() ; 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.. json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkJsonObject::ckLoadFile(json,"qa_data/tokens/twitter.json") rest.i = CkRest::ckCreate() If rest.i = 0 Debug "Failed to create object." ProcedureReturn EndIf oauth1.i = CkOAuth1::ckCreate() If oauth1.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkOAuth1::setCkConsumerKey(oauth1, "TWITTER_CONSUMER_KEY") CkOAuth1::setCkConsumerSecret(oauth1, "TWITTER_CONSUMER_SECRET") CkOAuth1::setCkToken(oauth1, CkJsonObject::ckStringOf(json,"oauth_token")) CkOAuth1::setCkTokenSecret(oauth1, CkJsonObject::ckStringOf(json,"oauth_token_secret")) CkOAuth1::setCkSignatureMethod(oauth1, "HMAC-SHA1") CkOAuth1::ckGenNonce(oauth1,16) CkRest::ckSetAuthOAuth1(rest,oauth1,0) bAutoReconnect.i = 1 success = CkRest::ckConnect(rest,"api.twitter.com",443,1,bAutoReconnect) If success <> 1 Debug CkRest::ckLastErrorText(rest) CkJsonObject::ckDispose(json) CkRest::ckDispose(rest) CkOAuth1::ckDispose(oauth1) ProcedureReturn EndIf ; This ends the initial setup... ; ---------------------------------------------------------------------- tweetContent.s = "This is a test tweet with multiple images." ; Send a tweet... CkRest::ckClearAllQueryParams(rest) CkRest::ckAddQueryParam(rest,"status",tweetContent) ; Add list of comma separated 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. CkRest::ckAddQueryParam(rest,"media_ids","793137045996646400,793192201392041984") resp.s = CkRest::ckFullRequestFormUrlEncoded(rest,"POST","/1.1/statuses/update.json") If CkRest::ckLastMethodSuccess(rest) <> 1 Debug CkRest::ckLastErrorText(rest) CkJsonObject::ckDispose(json) CkRest::ckDispose(rest) CkOAuth1::ckDispose(oauth1) ProcedureReturn EndIf jsonResponse.i = CkJsonObject::ckCreate() If jsonResponse.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::setCkEmitCompact(jsonResponse, 0) CkJsonObject::ckLoad(jsonResponse,resp) If CkRest::ckResponseStatusCode(rest) <> 200 Debug CkJsonObject::ckEmit(jsonResponse) CkJsonObject::ckDispose(json) CkRest::ckDispose(rest) CkOAuth1::ckDispose(oauth1) CkJsonObject::ckDispose(jsonResponse) ProcedureReturn EndIf ; Show the successful response: Debug CkJsonObject::ckEmit(jsonResponse) Debug "Success." CkJsonObject::ckDispose(json) CkRest::ckDispose(rest) CkOAuth1::ckDispose(oauth1) CkJsonObject::ckDispose(jsonResponse) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.