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
(Ruby) Get eBay Application TokenThis example shows how to request an eBay Application token.
require 'chilkat' # 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 = Chilkat::CkHttp.new() # 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.put_Login("EBAY_CLIENT_ID") http.put_Password("EBAY_CLIENT_SECRET") http.put_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 = Chilkat::CkHttpRequest.new() req.put_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.get_LastMethodSuccess() != true) print http.lastErrorText() + "\n"; exit end # The response is JSON.. json = Chilkat::CkJsonObject.new() json.Load(resp.bodyStr()) json.put_EmitCompact(false) # If the response status code is not 200, then it failed. print "Response status code = " + resp.get_StatusCode().to_s() + "\n"; if (resp.get_StatusCode() != 200) print json.emit() + "\n"; print "Failed." + "\n"; exit end # 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 = Chilkat::CkDateTime.new() dtExpire.SetFromCurrentSystemTime() dtExpire.AddSeconds(json.IntOf("expires_in")) json.AppendString("expire_time",dtExpire.getAsTimestamp(false)) # Persist the JSON to a file. fac = Chilkat::CkFileAccess.new() success = fac.WriteEntireTextFile("qa_data/tokens/ebay.json",json.emit(),"utf-8",false) if (success != true) print fac.lastErrorText() + "\n"; print "Failed to save eBay Application token to file." + "\n"; exit end print json.emit() + "\n"; print "Success." + "\n"; # 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.