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
(PureBasic) Amazon SP-API Sellers Get Marketplace ParticipationsSee more Amazon SP-API ExamplesDemonstrates Amazon SP-API Sellers API -- get marketplace participations. For more information, see https://developer-docs.amazon.com/sp-api/docs/sellers-api-v1-reference#getmarketplaceparticipations
IncludeFile "CkStringBuilder.pb" IncludeFile "CkAuthAws.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkRest.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. authAws.i = CkAuthAws::ckCreate() If authAws.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkAuthAws::setCkAccessKey(authAws, "AWS_ACCESS_KEY") CkAuthAws::setCkSecretKey(authAws, "AWS_SECRET_KEY") CkAuthAws::setCkServiceName(authAws, "execute-api") ; Use the region that is correct for your needs. CkAuthAws::setCkRegion(authAws, "eu-west-1") rest.i = CkRest::ckCreate() If rest.i = 0 Debug "Failed to create object." ProcedureReturn EndIf bTls.i = 1 port.i = 443 bAutoReconnect.i = 1 ; Make sure to use the correct domain. ; In this example, we are using "sandbox.sellingpartnerapi-eu.amazon.com" success.i = CkRest::ckConnect(rest,"sandbox.sellingpartnerapi-eu.amazon.com",port,bTls,bAutoReconnect) If success = 0 Debug CkRest::ckLastErrorText(rest) CkAuthAws::ckDispose(authAws) CkRest::ckDispose(rest) ProcedureReturn EndIf success = CkRest::ckSetAuthAws(rest,authAws) ; Load the previously obtained LWA access token. ; See Fetch SP-API LWA Access Token jsonToken.i = CkJsonObject::ckCreate() If jsonToken.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/sp_api_lwa_token.json") If success = 0 Debug "Failed to load LWA access token." CkAuthAws::ckDispose(authAws) CkRest::ckDispose(rest) CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf ; Add the x-amz-access-token request header. lwa_token.s = CkJsonObject::ckStringOf(jsonToken,"access_token") CkRest::ckClearAllHeaders(rest) CkRest::ckAddHeader(rest,"x-amz-access-token",lwa_token) ; Indicate the marketplace. Use the marketplace ID for your needs. See https://developer-docs.amazon.com/sp-api/docs/marketplace-ids CkRest::ckClearAllPathParams(rest) CkRest::ckAddPathParam(rest,"MarketplaceId","A1F83G8C2ARO7P") sbResponse.i = CkStringBuilder::ckCreate() If sbResponse.i = 0 Debug "Failed to create object." ProcedureReturn EndIf uri.s = "/sellers/v1/marketplaceParticipations" success = CkRest::ckFullRequestNoBodySb(rest,"GET",uri,sbResponse) If success = 0 Debug CkRest::ckLastErrorText(rest) CkAuthAws::ckDispose(authAws) CkRest::ckDispose(rest) CkJsonObject::ckDispose(jsonToken) CkStringBuilder::ckDispose(sbResponse) ProcedureReturn EndIf ; Examine the response status. statusCode.i = CkRest::ckResponseStatusCode(rest) If statusCode <> 200 Debug "Response status text: " + CkRest::ckResponseStatusText(rest) Debug "Response body: " Debug CkStringBuilder::ckGetAsString(sbResponse) Debug "Failed." CkAuthAws::ckDispose(authAws) CkRest::ckDispose(rest) CkJsonObject::ckDispose(jsonToken) CkStringBuilder::ckDispose(sbResponse) ProcedureReturn EndIf Debug CkStringBuilder::ckGetAsString(sbResponse) ; If successful, gets a JSON response such as the following: ; { ; "payload": [ ; { ; "marketplace": { ; "id": "ATVPDKIKX0DER", ; "countryCode": "US", ; "name": "Amazon.com", ; "defaultCurrencyCode": "USD", ; "defaultLanguageCode": "en_US", ; "domainName": "www.amazon.com" ; }, ; "participation": { ; "isParticipating": true, ; "hasSuspendedListings": false ; } ; } ; ] ; } ; Use this online tool to generate parsing code from sample JSON: ; Generate Parsing Code from JSON json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoadSb(json,sbResponse) Id.s CountryCode.s Name.s DefaultCurrencyCode.s DefaultLanguageCode.s DomainName.s IsParticipating.i HasSuspendedListings.i i.i = 0 count_i.i = CkJsonObject::ckSizeOfArray(json,"payload") While i < count_i CkJsonObject::setCkI(json, i) Id = CkJsonObject::ckStringOf(json,"payload[i].marketplace.id") CountryCode = CkJsonObject::ckStringOf(json,"payload[i].marketplace.countryCode") Name = CkJsonObject::ckStringOf(json,"payload[i].marketplace.name") DefaultCurrencyCode = CkJsonObject::ckStringOf(json,"payload[i].marketplace.defaultCurrencyCode") DefaultLanguageCode = CkJsonObject::ckStringOf(json,"payload[i].marketplace.defaultLanguageCode") DomainName = CkJsonObject::ckStringOf(json,"payload[i].marketplace.domainName") IsParticipating = CkJsonObject::ckBoolOf(json,"payload[i].participation.isParticipating") HasSuspendedListings = CkJsonObject::ckBoolOf(json,"payload[i].participation.hasSuspendedListings") i = i + 1 Wend Debug "Success!" CkAuthAws::ckDispose(authAws) CkRest::ckDispose(rest) CkJsonObject::ckDispose(jsonToken) CkStringBuilder::ckDispose(sbResponse) CkJsonObject::ckDispose(json) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.