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
(Chilkat2-Python) Get eBay Application TokenThis example shows how to request an eBay Application token.
import sys import chilkat2 # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # See the Ebay documentation about Access token types # Also see the Ebay documentation about client credentials grant flow http = chilkat2.Http() # If using the sandbox, the target endpoint will be: # POST https://api.sandbox.ebay.com/identity/v1/oauth2/token # If using the production (live) system, the target endpoint will be: # POST https://api.ebay.com/identity/v1/oauth2/token # The eBay client_id and client_secret needs to be sent # in a Basic Authorization request header, which has this format: # Authorization: Basic <B64_encoded_oauth_credentials> # Chilkat takes care of it. You only need to set the Login = client_id, # and password = client_secret, and indicate you want "Basic" HTTP Authorization. http.Login = "EBAY_CLIENT_ID" http.Password = "EBAY_CLIENT_SECRET" http.BasicAuth = True # Let's do the following POST: # HTTP method: POST # URL (Sandbox): https://api.sandbox.ebay.com/identity/v1/oauth2/token # # HTTP headers: # Content-Type = application/x-www-form-urlencoded # Authorization = Basic <B64-encoded-oauth-credentials> # # Request body (wrapped for readability): # grant_type=client_credentials& # redirect_uri=<RuName-value>& # scope=<SPACE separated list of scopes> # # Create an HttpRequest object to hold the request params. req = chilkat2.HttpRequest() req.HttpVerb = "POST" req.AddParam("grant_type","client_credentials") # The scope query param indicates the access to be provided by the token. # Multiple scopes can be specified by separating each with a SPACE char. # See the Ebay OAuth scopes documentation req.AddParam("scope","https://api.ebay.com/oauth/api_scope") # (The PostUrlEncoded method automatically sets the Content-Type header equal to "application/x-www-form-urlencoded") endPoint = "https://api.sandbox.ebay.com/identity/v1/oauth2/token" # resp is a CkHttpResponse resp = http.PostUrlEncoded(endPoint,req) if (http.LastMethodSuccess != True): print(http.LastErrorText) sys.exit() # The response is JSON.. json = chilkat2.JsonObject() json.Load(resp.BodyStr) json.EmitCompact = False # If the response status code is not 200, then it failed. print("Response status code = " + str(resp.StatusCode)) if (resp.StatusCode != 200): print(json.Emit()) print("Failed.") sys.exit() # We successfully retrieved an eBay access token. # The actual access token string can be parsed from the JSON like this: accessToken = json.StringOf("access_token") # This application token is only valid for 7200 seconds (2 hours). We'll want to refresh # it before it expires. (There is an online example for that..) # For now, let's save the JSON to a file for our application to use. # But before doing that, let's add to the JSON an expiration timestamp # so we know when to refresh the token. dtExpire = chilkat2.CkDateTime() dtExpire.SetFromCurrentSystemTime() dtExpire.AddSeconds(json.IntOf("expires_in")) json.AppendString("expire_time",dtExpire.GetAsTimestamp(False)) # Persist the JSON to a file. fac = chilkat2.FileAccess() success = fac.WriteEntireTextFile("qa_data/tokens/ebay.json",json.Emit(),"utf-8",False) if (success != True): print(fac.LastErrorText) print("Failed to save eBay Application token to file.") sys.exit() print(json.Emit()) print("Success.") # The output of this example is: # { # "access_token": "v^1.1#i^1#p^1#I^3#r^0# ... Ajp1BQhJDgAA", # "token_type": "Application Access Token", # "expires_in": 7200, # "refresh_token": "N/A", # "expire_time": "2017-04-16T14:44:20Z" # } # # Success. # |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.