Lua
Lua
WooCommerce OAuth 1.0a “one-legged” Authentication
See more REST Examples
Demonstrates how to use OAuth 1.0a "one legged" authentication with Woo Commerce.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- Demonstrates how to do OAuth1 authentication for a Wordpress site using Woo Commerce.
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
-- Prepare an OAuth 1.0 object for use with the Chilkat REST API.
local oauth1 = chilkat.OAuth1.new()
oauth1.consumer_key = "WOO_COMMERCE_CONSUMER_KEY"
oauth1.consumer_secret = "WOO_COMMERCE_CONSUMER_SECRET"
-- The signature method can be HMAC-SHA1 or HMAC-SHA256
oauth1.signature_method = "HMAC-SHA256"
-- The OauthUrl property will need to be updated each time a request is sent.
-- The domain here must match the domain passed to the Connect method (below).
-- The domain must be exact. For example, "www.your-wordpress-site.com" vs. "your-wordpress-site.com".
-- One might work while the other does not..
oauth1.oauth_url = "http://your-wordpress-site.com/wc-api/v3/orders"
-- The OAuthMethod property will be set automatically when the REST request is sent.
-- Setting it here is not actually necessary.
oauth1.oauth_method = "GET"
-- Generate an initial nonce so that Chilkat knows the desired size of the nonce.
local success = oauth1:gen_nonce(32)
local rest = chilkat.Rest.new()
-- Tell the REST object to use the OAuth1 object for authentication.
-- Also, indicate that the OAuth authentication parameters should be query parameters
-- and not located within the Authorization header.
local bUseQueryParams = true
success = rest:set_auth_oauth1(oauth1, bUseQueryParams)
-- Make the initial connection (without sending a request yet) to the WooCommerce endpoint at your Wordpress blog.
local bTls = false
local port = 80
local bAutoReconnect = true
success = rest:connect("your-wordpress-site.com", port, bTls, bAutoReconnect)
if not success then
print(rest.last_error_text)
return
end
-- Send a GET request to list orders.
-- When the request is sent, the OAuth1 object's Timestamp and Nonce properties are automatically
-- regenerated. Also, the OAuth1 object's OauthMethod property is automatically set to the HTTP method
-- used for the request (in this case it is "GET").
local responseJson = rest:full_request_no_body("GET", "/wc-api/v3/orders")
if not rest.last_method_success then
print(rest.last_error_text)
return
end
-- When successful, the response status code will equal 200.
if rest.response_status_code ~= 200 then
-- Examine the request/response to see what happened.
print("response status code = " .. rest.response_status_code)
print("response status text = " .. rest.response_status_text)
print("response header: " .. rest.response_header)
print("response body (if any): " .. responseJson)
print("---")
print("LastRequestStartLine: " .. rest.last_request_start_line)
print("LastRequestHeader: " .. rest.last_request_header)
return
end
print(responseJson)
print("Success.")