Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicCkPythonChilkat2-PythonRubySQL ServerSwift 2Swift 3/4TclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcelGo

Ruby Web API Examples

Primary Categories

Facebook
GeoOp
Jira
PayPal
Peoplevox
QuickBooks

Shopify
Stripe
SugarCRM
Twitter
VoiceBase
Walmart
Xero
eBay
effectconnect

 

 

 

(Ruby) Walmart - Get All Feed Statuses

Demonstrates how to send a Walmart REST API request to get all feed statuses.

Note: This example requires Chilkat v9.5.0.67 or greater.

Chilkat Ruby Downloads

Ruby Library for Linux and MAC OS X

require 'chilkat'

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

# Demonstrates how to send a request such as the following to get all feed statuses:
# Also demonstrates how to parse the results.

# GET /v2/feeds HTTP/1.1
# WM_SVC.NAME: Walmart Marketplace
# WM_QOS.CORRELATION_ID: 123456abcdef
# WM_SEC.TIMESTAMP: 1438147839
# WM_SEC.AUTH_SIGNATURE: 9khb0lPeRt0WSGbXNGGj4kSQ9L6PMBX/q+ovdy9bDQfvdhYs8NoEsjRX4fD7UNIHTddgkmSVqAqeIIHlaLcRIl0Y4DcJqQYHL27LiWlsm91nYodGssWTKsOq6dJfUHEy95M4zXFGWDDhbHYCor28SCV/g/JdEQybGkcX9Zj5aDyg=
# WM_CONSUMER.ID: a20ac266-9add-4fc7-9392-fec303f5155c
# Accept: application/xml
# Host: https://marketplace.walmartapis.com

requestUrl = "https://marketplace.walmartapis.com/v2/feeds"
requestMethod = "GET"

# First we need to generate a signature for our request.
# The signature needs to be re-generated for each new Walmart HTTP request.
authUtil = Chilkat::CkAuthUtil.new()

wmConsumerId = "WALMART_CONSUMER_ID"
wmPrivateKey = "WALMART_PRIVATE_KEY"
jsonStr = authUtil.walmartSignature(requestUrl,wmConsumerId,wmPrivateKey,requestMethod)
if (authUtil.get_LastMethodSuccess() != true)
    print authUtil.lastErrorText() + "\n";
    exit
end

# The JSON returned by WalmartSignature contains the values to be used in the following
# header fields: WM_SEC.AUTH_SIGNATURE, WM_SEC.TIMESTAMP, and WM_QOS.CORRELATION_ID
json = Chilkat::CkJsonObject.new()
json.Load(jsonStr)

http = Chilkat::CkHttp.new()
http.SetRequestHeader("WM_SVC.NAME","Walmart Marketplace")
http.SetRequestHeader("WM_QOS.CORRELATION_ID",json.stringOf("correlation_id"))
http.SetRequestHeader("WM_SEC.TIMESTAMP",json.stringOf("timestamp"))
http.SetRequestHeader("WM_SEC.AUTH_SIGNATURE",json.stringOf("signature"))
http.SetRequestHeader("WM_CONSUMER.ID",wmConsumerId)
http.put_Accept("application/xml")

# Note: Do not explicitly set the "Host" header.  Chilkat will set it automatically.

xmlStr = http.quickGetStr(requestUrl)
if (http.get_LastMethodSuccess() != true)
    print http.lastErrorText() + "\n";
    exit
end

xml = Chilkat::CkXml.new()
xml.LoadXml(xmlStr)

# A successful response should have a 200 response status
if (http.get_LastStatus() != 200)
    print xml.getXml() + "\n";
    print "Response Status Code: " + http.get_LastStatus().to_s() + "\n";
    print "Failed." + "\n";
    exit
end

# A sample XML response is shown below..

# To iterate over the Walmart feeds:
numFeeds = xml.NumChildrenAt("ns2:results")
i = 0
while i < numFeeds
    xml.put_I(i)

    print "Feed ID: " + xml.getChildContent("ns2:results|ns2:feed[i]|ns2:feedId") + "\n";
    print "Feed Type: " + xml.getChildContent("ns2:results|ns2:feed[i]|ns2:feedType") + "\n";
    print "Num Items Recieved: " + xml.GetChildIntValue("ns2:results|ns2:feed[i]|ns2:itemsReceived").to_s() + "\n";
    print "Feed Status: " + xml.getChildContent("ns2:results|ns2:feed[i]|ns2:feedStatus") + "\n";
    print "--" + "\n";

    i = i + 1
end

print "Success." + "\n";

# ---------------------------------------
# Sample XML response
# ---------------------------------------

# <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
# <ns2:list xmlns:ns2="http://walmart.com/">
#     <ns2:totalResults>1293</ns2:totalResults>
#     <ns2:offset>0</ns2:offset>
#     <ns2:limit>50</ns2:limit>
#     <ns2:results>
#         <ns2:feed>
#             <ns2:feedId>AAAA7F0345E9403C91223F7139FFC341@AQsBAQA</ns2:feedId>
#             <ns2:feedType>inventory</ns2:feedType>
#             <ns2:partnerId>10000999999</ns2:partnerId>
#             <ns2:itemsReceived>130088</ns2:itemsReceived>
#             <ns2:itemsSucceeded>113154</ns2:itemsSucceeded>
#             <ns2:itemsFailed>16934</ns2:itemsFailed>
#             <ns2:itemsProcessing>0</ns2:itemsProcessing>
#             <ns2:feedStatus>PROCESSED</ns2:feedStatus>
#             <ns2:feedDate>2017-04-27T17:05:42.078Z</ns2:feedDate>
#             <ns2:modifiedDtm>2017-04-27T18:06:10.795Z</ns2:modifiedDtm>
#         </ns2:feed>
#         <ns2:feed>
#             <ns2:feedId>AAAAF1F402CD407FA363AD2929593FFF@AQsBAQA</ns2:feedId>
#             <ns2:feedType>inventory</ns2:feedType>
#             <ns2:partnerId>10000999999</ns2:partnerId>
#             <ns2:itemsReceived>39594</ns2:itemsReceived>
#             <ns2:itemsSucceeded>34533</ns2:itemsSucceeded>
#             <ns2:itemsFailed>5061</ns2:itemsFailed>
#             <ns2:itemsProcessing>0</ns2:itemsProcessing>
#             <ns2:feedStatus>PROCESSED</ns2:feedStatus>
#             <ns2:feedDate>2017-04-27T05:18:59.739Z</ns2:feedDate>
#             <ns2:modifiedDtm>2017-04-27T05:20:30.192Z</ns2:modifiedDtm>
#         </ns2:feed>
# ...
#     </ns2:results>
# </ns2:list>

 

© 2000-2019 Chilkat Software, Inc. All Rights Reserved.