Delphi ActiveX
Delphi ActiveX
Twitter Simple Tweet (Post Status Update)
Demonstrates sending a simple Twitter status update (tweet).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;
tweetContent: WideString;
resp: WideString;
jsonResponse: TChilkatJsonObject;
begin
success := 0;
// It 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.';
// Send a tweet...
rest.ClearAllQueryParams();
rest.AddQueryParam('status',tweetContent);
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.');
// A successful JSON response looks like this:
// {
// "created_at": "Tue Oct 18 01:58:44 +0000 2016",
// "id": 788111589581114111,
// "id_str": "788111189585711352",
// "text": "This is a test tweet.",
// "truncated": false,
// "entities": {
// "hashtags": [
// ],
// "symbols": [
// ],
// "user_mentions": [
// ],
// "urls": [
// ]
// },
// "source": "\u003ca href=\"https:\/\/www.chilkatsoft.com\/\" rel=\"nofollow\"\u003eChilkatTestApp\u003c\/a\u003e",
// "in_reply_to_status_id": null,
// "in_reply_to_status_id_str": null,
// "in_reply_to_user_id": null,
// "in_reply_to_user_id_str": null,
// "in_reply_to_screen_name": null,
// "user": {
// "id": 85647455,
// "id_str": "85647455",
// "name": "Chilkat Software",
// "screen_name": "chilkatsoft",
// "location": "",
// "description": "",
// "url": "https:\/\/t.co\/hSTR4sOuis",
// "entities": {
// "url": {
// "urls": [
// {
// "url": "https:\/\/t.co\/hSTR4sOuis",
// "expanded_url": "http:\/\/www.chilkatsoft.com",
// "display_url": "chilkatsoft.com",
// "indices": [
// 0,
// 23
// ]
// }
// ]
// },
// "description": {
// "urls": [
// ]
// }
// },
// "protected": false,
// "followers_count": 36,
// "friends_count": 0,
// "listed_count": 4,
// "created_at": "Tue Oct 27 19:56:13 +0000 2009",
// "favourites_count": 0,
// "utc_offset": null,
// "time_zone": null,
// "geo_enabled": false,
// "verified": false,
// "statuses_count": 6,
// "lang": "en",
// "contributors_enabled": false,
// "is_translator": false,
// "is_translation_enabled": false,
// "profile_background_color": "C0DEED",
// "profile_background_image_url": "http:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png",
// "profile_background_image_url_https": "https:\/\/abs.twimg.com\/images\/themes\/theme1\/bg.png",
// "profile_background_tile": false,
// "profile_image_url": "http:\/\/pbs.twimg.com\/profile_images\/115893001012741111\/clLweDSg_normal.jpg",
// "profile_image_url_https": "https:\/\/pbs.twimg.com\/profile_images\/115893001012741111\/clLweDSg_normal.jpg",
// "profile_link_color": "0084B4",
// "profile_sidebar_border_color": "C0DEED",
// "profile_sidebar_fill_color": "DDEEF6",
// "profile_text_color": "333333",
// "profile_use_background_image": true,
// "has_extended_profile": false,
// "default_profile": true,
// "default_profile_image": false,
// "following": false,
// "follow_request_sent": false,
// "notifications": false
// },
// "geo": null,
// "coordinates": null,
// "place": null,
// "contributors": null,
// "is_quote_status": false,
// "retweet_count": 0,
// "favorite_count": 0,
// "favorited": false,
// "retweeted": false,
// "lang": "en"
// }
//
end;