Delphi DLL
Delphi DLL
Twitter - Tweet with Multiple Images
Example to post a status update with multiple associated images/photos (or videos).Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, OAuth1, Rest, JsonObject;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
json: HCkJsonObject;
rest: HCkRest;
oauth1: HCkOAuth1;
bAutoReconnect: Boolean;
tweetContent: PWideChar;
resp: PWideChar;
jsonResponse: HCkJsonObject;
begin
success := False;
// 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 := CkJsonObject_Create();
success := CkJsonObject_LoadFile(json,'qa_data/tokens/twitter.json');
rest := CkRest_Create();
oauth1 := CkOAuth1_Create();
CkOAuth1_putConsumerKey(oauth1,'TWITTER_CONSUMER_KEY');
CkOAuth1_putConsumerSecret(oauth1,'TWITTER_CONSUMER_SECRET');
CkOAuth1_putToken(oauth1,CkJsonObject__stringOf(json,'oauth_token'));
CkOAuth1_putTokenSecret(oauth1,CkJsonObject__stringOf(json,'oauth_token_secret'));
CkOAuth1_putSignatureMethod(oauth1,'HMAC-SHA1');
CkOAuth1_GenNonce(oauth1,16);
CkRest_SetAuthOAuth1(rest,oauth1,False);
bAutoReconnect := True;
success := CkRest_Connect(rest,'api.twitter.com',443,True,bAutoReconnect);
if (success <> True) then
begin
Memo1.Lines.Add(CkRest__lastErrorText(rest));
Exit;
end;
// This ends the initial setup...
// ----------------------------------------------------------------------
tweetContent := 'This is a test tweet with multiple images.';
// Send a tweet...
CkRest_ClearAllQueryParams(rest);
CkRest_AddQueryParam(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_AddQueryParam(rest,'media_ids','793137045996646400,793192201392041984');
resp := CkRest__fullRequestFormUrlEncoded(rest,'POST','/1.1/statuses/update.json');
if (CkRest_getLastMethodSuccess(rest) <> True) then
begin
Memo1.Lines.Add(CkRest__lastErrorText(rest));
Exit;
end;
jsonResponse := CkJsonObject_Create();
CkJsonObject_putEmitCompact(jsonResponse,False);
CkJsonObject_Load(jsonResponse,resp);
if (CkRest_getResponseStatusCode(rest) <> 200) then
begin
Memo1.Lines.Add(CkJsonObject__emit(jsonResponse));
Exit;
end;
// Show the successful response:
Memo1.Lines.Add(CkJsonObject__emit(jsonResponse));
Memo1.Lines.Add('Success.');
CkJsonObject_Dispose(json);
CkRest_Dispose(rest);
CkOAuth1_Dispose(oauth1);
CkJsonObject_Dispose(jsonResponse);
end;