Delphi ActiveX
Delphi ActiveX
Emoji Tweet
Demonstrates posting a status update that includes an emoji character.This example is deprecated and no longer valid.
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;
sbText: TChilkatStringBuilder;
resp: WideString;
jsonResponse: TChilkatJsonObject;
begin
success := 0;
// This 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...
// ----------------------------------------------------------------------
// For this example, I've pre-created a text file containing two emoji
// characters (the "ghost" emoji, and a "face savouring delicious food" emoji).
// This text file was saved using the utf-8 encoding.
// The utf-8 bytes for the ghost emoji are 0x9f 0x91 0xbb. (Note: This is the utf-8
// representation that does not use surrogate pairs.)
//
// The utf-8 bytes for the "face savouring delicious food" emoji are \xF0\x9F\x98\x8B.
sbText := TChilkatStringBuilder.Create(Self);
sbText.LoadFile('qa_data/txt/ghost_emoji.txt','utf-8');
sbText.Prepend('Test tweet using two emoji chars: ');
// Send a tweet...
rest.ClearAllQueryParams();
rest.AddQueryParam('status',sbText.GetAsString());
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;