Delphi ActiveX
Delphi ActiveX
Twitter - Tweet with Multiple Images
Example to post a status update with multiple associated images/photos (or videos).Chilkat Delphi ActiveX Downloads
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
success: Integer;
json: TChilkatJsonObject;
rest: TChilkatRest;
oauth1: TChilkatOAuth1;
bAutoReconnect: Integer;
tweetContent: WideString;
resp: WideString;
jsonResponse: TChilkatJsonObject;
begin
success := 0;
// 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 := TChilkatJsonObject.Create(Self);
success := json.LoadFile('qa_data/tokens/twitter.json');
rest := TChilkatRest.Create(Self);
oauth1 := TChilkatOAuth1.Create(Self);
oauth1.ConsumerKey := 'TWITTER_CONSUMER_KEY';
oauth1.ConsumerSecret := 'TWITTER_CONSUMER_SECRET';
oauth1.Token := json.StringOf('oauth_token');
oauth1.TokenSecret := json.StringOf('oauth_token_secret');
oauth1.SignatureMethod := 'HMAC-SHA1';
oauth1.GenNonce(16);
rest.SetAuthOAuth1(oauth1.ControlInterface,0);
bAutoReconnect := 1;
success := rest.Connect('api.twitter.com',443,1,bAutoReconnect);
if (success <> 1) then
begin
Memo1.Lines.Add(rest.LastErrorText);
Exit;
end;
// This ends the initial setup...
// ----------------------------------------------------------------------
tweetContent := 'This is a test tweet with multiple images.';
// Send a tweet...
rest.ClearAllQueryParams();
rest.AddQueryParam('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.
rest.AddQueryParam('media_ids','793137045996646400,793192201392041984');
resp := rest.FullRequestFormUrlEncoded('POST','/1.1/statuses/update.json');
if (rest.LastMethodSuccess <> 1) then
begin
Memo1.Lines.Add(rest.LastErrorText);
Exit;
end;
jsonResponse := TChilkatJsonObject.Create(Self);
jsonResponse.EmitCompact := 0;
jsonResponse.Load(resp);
if (rest.ResponseStatusCode <> 200) then
begin
Memo1.Lines.Add(jsonResponse.Emit());
Exit;
end;
// Show the successful response:
Memo1.Lines.Add(jsonResponse.Emit());
Memo1.Lines.Add('Success.');
end;