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
(Delphi ActiveX) Upload Media to TwitterDemonstrates uploading image or video files to Twitter. After uploading, the media_id can be used to attach the uploaded media to a tweet.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var jsonToken: TChilkatJsonObject; success: Integer; http: TChilkatHttp; req: TChilkatHttpRequest; fac: TCkFileAccess; jpgBytes: Array of Byte; resp: IChilkatHttpResponse; jsonResponse: TChilkatJsonObject; begin // 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.. jsonToken := TChilkatJsonObject.Create(Self); success := jsonToken.LoadFile('qa_data/tokens/twitter.json'); http := TChilkatHttp.Create(Self); // Provide the OAuth 1.0a credentials: http.OAuth1 := 1; http.OAuthConsumerKey := 'TWITTER_CONSUMER_KEY'; http.OAuthConsumerSecret := 'TWITTER_CONSUMER_SECRET'; http.OAuthToken := jsonToken.StringOf('oauth_token'); http.OAuthTokenSecret := jsonToken.StringOf('oauth_token_secret'); req := TChilkatHttpRequest.Create(Self); req.HttpVerb := 'POST'; req.ContentType := 'multipart/form-data'; req.Path := '/1.1/media/upload.json'; req.AddHeader('Expect','100-continue'); // Add a JPEG image file to the upload. fac := TCkFileAccess.Create(Self); jpgBytes := fac.ReadEntireFile('qa_data/jpg/starfish.jpg'); req.AddBytesForUpload('media','starfish.jpg',jpgBytes); resp := http.SynchronousRequest('upload.twitter.com',443,1,req.ControlInterface); if (http.LastMethodSuccess <> 1) then begin Memo1.Lines.Add(http.LastErrorText); Exit; end; jsonResponse := TChilkatJsonObject.Create(Self); jsonResponse.EmitCompact := 0; jsonResponse.Load(resp.BodyStr); if (resp.StatusCode <> 200) then begin Memo1.Lines.Add(jsonResponse.Emit()); Exit; end; // Show the successful response: Memo1.Lines.Add(jsonResponse.Emit()); Memo1.Lines.Add('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: Memo1.Lines.Add('media_id_string = ' + jsonResponse.StringOf('media_id_string')); Memo1.Lines.Add('size = ' + IntToStr(jsonResponse.IntOf('size'))); Memo1.Lines.Add('image_type = ' + jsonResponse.StringOf('image.image_type')); Memo1.Lines.Add('height/width = ' + IntToStr(jsonResponse.IntOf('image.w')) + ',' + IntToStr(jsonResponse.IntOf('image.h'))); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.