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
(Perl) Get eBay Application TokenThis example shows how to request an eBay Application token.
use 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(1); # 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 HttpResponse $resp = $http->PostUrlEncoded($endPoint,$req); if ($http->get_LastMethodSuccess() != 1) { print $http->lastErrorText() . "\r\n"; exit; } # The response is JSON.. $json = chilkat::CkJsonObject->new(); $json->Load($resp->bodyStr()); $json->put_EmitCompact(0); # If the response status code is not 200, then it failed. print "Response status code = " . $resp->get_StatusCode() . "\r\n"; if ($resp->get_StatusCode() != 200) { print $json->emit() . "\r\n"; print "Failed." . "\r\n"; 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 = chilkat::CkDateTime->new(); $dtExpire->SetFromCurrentSystemTime(); $dtExpire->AddSeconds($json->IntOf("expires_in")); $json->AppendString("expire_time",$dtExpire->getAsTimestamp(0)); # Persist the JSON to a file. $fac = chilkat::CkFileAccess->new(); $success = $fac->WriteEntireTextFile("qa_data/tokens/ebay.json",$json->emit(),"utf-8",0); if ($success != 1) { print $fac->lastErrorText() . "\r\n"; print "Failed to save eBay Application token to file." . "\r\n"; exit; } print $json->emit() . "\r\n"; print "Success." . "\r\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.