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
(SQL Server) Emoji TweetDemonstrates posting a status update that includes an emoji character.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- 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.. DECLARE @json int -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @json, 'LoadFile', @success OUT, 'qa_data/tokens/twitter.json' DECLARE @rest int -- Use "Chilkat_9_5_0.Rest" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Rest', @rest OUT DECLARE @oauth1 int -- Use "Chilkat_9_5_0.OAuth1" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.OAuth1', @oauth1 OUT EXEC sp_OASetProperty @oauth1, 'ConsumerKey', 'TWITTER_CONSUMER_KEY' EXEC sp_OASetProperty @oauth1, 'ConsumerSecret', 'TWITTER_CONSUMER_SECRET' EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'oauth_token' EXEC sp_OASetProperty @oauth1, 'Token', @sTmp0 EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'oauth_token_secret' EXEC sp_OASetProperty @oauth1, 'TokenSecret', @sTmp0 EXEC sp_OASetProperty @oauth1, 'SignatureMethod', 'HMAC-SHA1' EXEC sp_OAMethod @oauth1, 'GenNonce', @success OUT, 16 EXEC sp_OAMethod @rest, 'SetAuthOAuth1', @success OUT, @oauth1, 0 DECLARE @bAutoReconnect int SELECT @bAutoReconnect = 1 EXEC sp_OAMethod @rest, 'Connect', @success OUT, 'api.twitter.com', 443, 1, @bAutoReconnect IF @success <> 1 BEGIN EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @json EXEC @hr = sp_OADestroy @rest EXEC @hr = sp_OADestroy @oauth1 RETURN 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. DECLARE @sbText int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbText OUT EXEC sp_OAMethod @sbText, 'LoadFile', @success OUT, 'qa_data/txt/ghost_emoji.txt', 'utf-8' EXEC sp_OAMethod @sbText, 'Prepend', @success OUT, 'Test tweet using two emoji chars: ' -- Send a tweet... EXEC sp_OAMethod @rest, 'ClearAllQueryParams', @success OUT EXEC sp_OAMethod @sbText, 'GetAsString', @sTmp0 OUT EXEC sp_OAMethod @rest, 'AddQueryParam', @success OUT, 'status', @sTmp0 DECLARE @resp nvarchar(4000) EXEC sp_OAMethod @rest, 'FullRequestFormUrlEncoded', @resp OUT, 'POST', '/1.1/statuses/update.json' EXEC sp_OAGetProperty @rest, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @json EXEC @hr = sp_OADestroy @rest EXEC @hr = sp_OADestroy @oauth1 EXEC @hr = sp_OADestroy @sbText RETURN END DECLARE @jsonResponse int -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jsonResponse OUT EXEC sp_OASetProperty @jsonResponse, 'EmitCompact', 0 EXEC sp_OAMethod @jsonResponse, 'Load', @success OUT, @resp EXEC sp_OAGetProperty @rest, 'ResponseStatusCode', @iTmp0 OUT IF @iTmp0 <> 200 BEGIN EXEC sp_OAMethod @jsonResponse, 'Emit', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @json EXEC @hr = sp_OADestroy @rest EXEC @hr = sp_OADestroy @oauth1 EXEC @hr = sp_OADestroy @sbText EXEC @hr = sp_OADestroy @jsonResponse RETURN END -- Show the successful response: EXEC sp_OAMethod @jsonResponse, 'Emit', @sTmp0 OUT PRINT @sTmp0 PRINT 'Success.' EXEC @hr = sp_OADestroy @json EXEC @hr = sp_OADestroy @rest EXEC @hr = sp_OADestroy @oauth1 EXEC @hr = sp_OADestroy @sbText EXEC @hr = sp_OADestroy @jsonResponse END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.