Sample code for 30+ languages & platforms
DataFlex

Shopify Private Authentication for Private Apps

See more Shopify Examples

Shopify private authentication is for interacting with your own store through private applications. It uses HTTP "Basic" authentication with your Shopify private application key and secret key.

This example demonstrates how to send a private authenticated request using Chilkat Http, and then the same using Chilkat Rest.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHttp
    Variant vResp
    Handle hoResp
    Variant vSbJson
    Handle hoSbJson
    Handle hoJson
    Handle hoRest
    Boolean iBTls
    Integer iPort
    Boolean iBAutoReconnect
    String sTemp1
    Integer iTemp1
    Boolean bTemp1

    Move False To iSuccess

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

    // First demonstrate sending a simple request using Shopify private authentication w/ the Chilkat Http API.
    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    // To use HTTP Basic Authentication with any HTTP request, we simply set the Login, Password, and BasicAuth properties.
    // Important: All HTTP requests using Basic authentication must be over SSL/TLS.
    Set ComLogin Of hoHttp To "SHOPIFY_PRIVATE_API_KEY"
    Set ComPassword Of hoHttp To "SHOPIFY_PRIVATE_API_SECRET_KEY"
    Set ComBasicAuth Of hoHttp To True

    // Make sure to replace "chilkat" with your store name.
    Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
    If (Not(IsComObjectCreated(hoResp))) Begin
        Send CreateComObject of hoResp
    End
    Get pvComObject of hoResp to vResp
    Get ComHttpNoBody Of hoHttp "GET" "https://chilkat.myshopify.com/admin/products.json" vResp To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Examine the response code.
    Get ComStatusCode Of hoResp To iTemp1
    If (iTemp1 <> 200) Begin
        Get ComStatusCode Of hoResp To iTemp1
        Showln "Received error response code: " iTemp1
        Showln "Response body:"
        Get ComBodyStr Of hoResp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Success.
    Showln "Success."

    // Examine the JSON response 
    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbJson
    If (Not(IsComObjectCreated(hoSbJson))) Begin
        Send CreateComObject of hoSbJson
    End
    Get pvComObject of hoSbJson to vSbJson
    Get ComGetBodySb Of hoResp vSbJson To iSuccess
    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End
    Get pvComObject of hoSbJson to vSbJson
    Get ComLoadSb Of hoJson vSbJson To iSuccess
    Set ComEmitCompact Of hoJson To False
    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1

    // -------------------------------------------------
    // Now let's do the same using the Chilkat Rest API.
    Get Create (RefClass(cComChilkatRest)) To hoRest
    If (Not(IsComObjectCreated(hoRest))) Begin
        Send CreateComObject of hoRest
    End

    // Provide the private app credentials:
    Get ComSetAuthBasic Of hoRest "SHOPIFY_PRIVATE_API_KEY" "SHOPIFY_PRIVATE_API_SECRET_KEY" To iSuccess

    // Connect to the shopify server.
    Move True To iBTls
    Move 443 To iPort
    Move True To iBAutoReconnect
    // Make sure to replace "chilkat" with your store name.
    Get ComConnect Of hoRest "chilkat.myshopify.com" iPort iBTls iBAutoReconnect To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Send ComClear To hoSbJson
    Get pvComObject of hoSbJson to vSbJson
    Get ComFullRequestNoBodySb Of hoRest "GET" "/admin/products.json" vSbJson To iSuccess
    Get ComLastMethodSuccess Of hoRest To bTemp1
    If (bTemp1 = False) Begin
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComResponseStatusCode Of hoRest To iTemp1
    If (iTemp1 <> 200) Begin
        Get ComResponseStatusCode Of hoRest To iTemp1
        Showln "Received error response code: " iTemp1
        Showln "Response body:"
        Get ComGetAsString Of hoSbJson To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Success...
    Get pvComObject of hoSbJson to vSbJson
    Get ComLoadSb Of hoJson vSbJson To iSuccess
    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1


End_Procedure