![]() |
Chilkat • HOME • Android™ • AutoIt • C • C# • C++ • Chilkat2-Python • CkPython • Classic ASP • DataFlex • Delphi DLL • Go • Java • Node.js • Objective-C • PHP Extension • Perl • PowerBuilder • PowerShell • PureBasic • Ruby • SQL Server • Swift • Tcl • Unicode C • Unicode C++ • VB.NET • VBScript • Visual Basic 6.0 • Visual FoxPro • Xojo Plugin
(Tcl) USPS OAuth2 Client CredentialsSee more OAuth2 ExamplesGet an OAuth2 access token for the United States Postal Service (USPS) REST API.For more information, see https://developers.usps.com/api/81
load ./chilkat.dll # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set http [new_CkHttp] # Implements the following CURL command: # curl -X POST https://apis.usps.com/oauth2/v3/token \ # -H "Content-Type: application/x-www-form-urlencoded" \ # -d "grant_type=client_credentials" \ # -d "client_id=123456789" \ # -d "client_secret=A1B2C3D4E5" \ # -d "scope=ResourceA+ResourceB+ResourceC" # Use the following online tool to generate HTTP code from a CURL command # Convert a cURL Command to HTTP Source Code set req [new_CkHttpRequest] CkHttpRequest_AddParam $req "grant_type" "client_credentials" CkHttpRequest_AddParam $req "client_id" "123456789" CkHttpRequest_AddParam $req "client_secret" "A1B2C3D4E5" CkHttpRequest_AddParam $req "scope" "ResourceA+ResourceB+ResourceC" # resp is a CkHttpResponse set resp [CkHttp_PostUrlEncoded $http "https://apis.usps.com/oauth2/v3/token" $req] if {[CkHttp_get_LastMethodSuccess $http] == 0} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkHttpRequest $req exit } set sbResponseBody [new_CkStringBuilder] CkHttpResponse_GetBodySb $resp $sbResponseBody set jResp [new_CkJsonObject] CkJsonObject_LoadSb $jResp $sbResponseBody CkJsonObject_put_EmitCompact $jResp 0 puts "Response Body:" puts [CkJsonObject_emit $jResp] set respStatusCode [CkHttpResponse_get_StatusCode $resp] puts "Response Status Code = $respStatusCode" if {$respStatusCode >= 400} then { puts "Response Header:" puts [CkHttpResponse_header $resp] puts "Failed." delete_CkHttpResponse $resp delete_CkHttp $http delete_CkHttpRequest $req delete_CkStringBuilder $sbResponseBody delete_CkJsonObject $jResp exit } delete_CkHttpResponse $resp # Sample JSON response: # (Sample code for parsing the JSON response is shown below) # { # "access_token": "eyJraWQiOiIxMDEwMTAiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIiLCJhdWQiOiJhZGRyZXNzZXMgaW50ZXJuYXRpb25hbC1wcmljZXMgc3Vic2NyaXB0aW9ucyBwYXltZW50cyBwaWNrdXAgdHJhY2tpbmcgbGFiZWxzIHNjYW4tZm9ybXMgY29tcGFuaWVzIHNlcnZpY2UtZGVsaXZlcnktc3RhbmRhcmRzIGxvY2F0aW9ucyBpbnRlcm5hdGlvbmFsLWxhYmVscyBwcmljZXMiLCJhenAiOiJoeXI3YjN2Q1J0cFl0QUhNMWE4Y2RVcmt5eUZtTmtiZyIsIm9yZ2FuaXphdGlvbl9pZCI6IjAiLCJpc3MiOiJ1cm46XC9cL2FwaS51c3BzLmNvbSIsImV4cCI6MTY4MDkxNzc4NiwiaWF0IjoxNjgwODg4OTg2LCJqdGkiOiI3YjU5MzJlMS05NjIxLTQzZDAtYTMyNy0xMzIxYWVjNzJjZGYifQ.QzrUxlT2rG4jvYbMDGnk23j8ZYfHJcdXPKR9CbSmcKeVpURaHhEMpPB6K4x5ut3xxeEGSzeE5VRz8vixI4iqyHsD8rSdkLTPHy0iovUHOZQBAJVQ6hii9jpLhxUXmiTtH3jKzSj_f2fuNmZbIGhf-CR2FBeWF-aBPzEDEMV95nkCUMfW_Z2BmkbraSfvQZxkCO-cLrMAwlYcrzUtaJ7vnazeQB4sep5BBHBEvsa4kfq6_tz6BAKgv3R7cI2NkSv-wgy_IGoTjVCMTS8mJHGs_t8cWCO8-z4lxW1tUwIBKOCUDpmEEnGgiG6Sl0C_gGl4bZ5cDSl4IgPpcOVi9jZ7LA", # "token_type": "Bearer", # "issued_at": 1680888985929, # "expires_in": 28799, # "status": "approved", # "scope": "addresses international-prices subscriptions payments pickup tracking labels scan-forms companies service-delivery-standards locations international-labels prices", # "issuer": "api.usps.com", # "client_id": "hyr7b3vCRtpYtAHM1a8cdUrkyyFmNkbg", # "application_name": "Silver Shipper Developer", # "api_products": "[Shipping-Silver]", # "public_key": "LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF4QWxwZjNSNEE1S0lwZnhJVWk1bgpMTFByZjZVZTV3MktzeGxSVzE1UWV0UzBjWGVxaW9OT2hXbDNaaVhEWEdKT3ZuK3RoY0NWVVQ3WC9JZWYvTENZCkhUWk1kYUJOdW55VHEwT2RNZmVkUU8zYUNKZmwvUnJPTHYyaG9TRDR4U1YxRzFuTTc1RTlRYitFZ1p0cmFEUXoKNW42SXRpMUMzOHFGMjU5NVRHUWVUemx3Wk1LQng1VTY2bGwzNzlkZ2plTUJxS3ppVHZHWEpOdVg5ZzRrRlBIaApTLzNERm9FNkVFSW8zUHExeDlXTnRaSm93VkRwQUVZZTQ3SU1UdXJDN2NGcXp2d3M1b1BDRHQ4c083N2lUdDN0Cm1vK3NrM2ExWnZSaGs2WUQ3Zkt1UldQVzFEYUM4dC9pazlnWnhqQndYNlZsSUhDRzRZSHlYejZteWdGV09jMmEKOVFJREFRQUIKLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0t" # } # Sample code for parsing the JSON response... # Use the following online tool to generate parsing code from sample JSON: # Generate Parsing Code from JSON set access_token [CkJsonObject_stringOf $jResp "access_token"] set token_type [CkJsonObject_stringOf $jResp "token_type"] set issued_at [CkJsonObject_IntOf $jResp "issued_at"] set expires_in [CkJsonObject_IntOf $jResp "expires_in"] set status [CkJsonObject_stringOf $jResp "status"] set scope [CkJsonObject_stringOf $jResp "scope"] set issuer [CkJsonObject_stringOf $jResp "issuer"] set client_id [CkJsonObject_stringOf $jResp "client_id"] set application_name [CkJsonObject_stringOf $jResp "application_name"] set api_products [CkJsonObject_stringOf $jResp "api_products"] set public_key [CkJsonObject_stringOf $jResp "public_key"] delete_CkHttp $http delete_CkHttpRequest $req delete_CkStringBuilder $sbResponseBody delete_CkJsonObject $jResp |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.