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) WordPress Authentication with Applications Password PluginSee more WordPress ExamplesDemonstrates basic username/password authentication using the WordPress Applications Password plugin. For more information, see https://wordpress.org/plugins/application-passwords/
IncludeFile "CkHttp.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonArray.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkDtObj.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i ; Implements the following CURL command: ; curl -X GET --user wp_username:app_password https://www.yoursite.com/wp-json/wp/v2/posts?page=1 ; Use the following online tool to generate HTTP code from a CURL command ; Convert a cURL Command to HTTP Source Code ; Use your WordPress login, such as "admin", not the application name. CkHttp::setCkLogin(http, "wp_username") ; Use the application password, such as "Nths RwVH eDJ4 weNZ orMN jabq" CkHttp::setCkPassword(http, "app_password") CkHttp::setCkBasicAuth(http, 1) sbResponseBody.i = CkStringBuilder::ckCreate() If sbResponseBody.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkHttp::ckQuickGetSb(http,"https://www.yoursite.com/wp-json/wp/v2/posts?page=1",sbResponseBody) If success = 0 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) ProcedureReturn EndIf jarrResp.i = CkJsonArray::ckCreate() If jarrResp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonArray::ckLoadSb(jarrResp,sbResponseBody) CkJsonArray::setCkEmitCompact(jarrResp, 0) Debug "Response Body:" Debug CkJsonArray::ckEmit(jarrResp) respStatusCode.i = CkHttp::ckLastStatus(http) Debug "Response Status Code = " + Str(respStatusCode) If respStatusCode >= 400 Debug "Response Header:" Debug CkHttp::ckLastHeader(http) Debug "Failed." CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) CkJsonArray::ckDispose(jarrResp) ProcedureReturn EndIf ; Sample JSON response: ; (Sample code for parsing the JSON response is shown below) ; [ ; { ; "id": 1902, ; "date": "2020-11-16T09:54:09", ; "date_gmt": "2020-11-16T16:54:09", ; "guid": { ; "rendered": "http:\/\/cknotes.com\/?p=1902" ; }, ; "modified": "2020-11-16T09:54:09", ; "modified_gmt": "2020-11-16T16:54:09", ; "slug": "xero-redirect-uri-for-oauth2-and-desktop-apps", ; "status": "publish", ; "type": "post", ; "link": "https:\/\/cknotes.com\/xero-redirect-uri-for-oauth2-and-desktop-apps\/", ; "title": { ; "rendered": "Xero Redirect URI for OAuth2 and Desktop Apps" ; }, ; "content": { ; "rendered": "<p>...", ; "protected": false ; }, ; "excerpt": { ; "rendered": "<p>...", ; "protected": false ; }, ; "author": 1, ; "featured_media": 0, ; "comment_status": "closed", ; "ping_status": "open", ; "sticky": false, ; "template": "", ; "format": "standard", ; "meta": [ ; ], ; "categories": [ ; 815 ; ], ; "tags": [ ; 594, ; 816 ; ], ; "_links": { ; "self": [ ; { ; "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/posts\/1902" ; } ; ], ; "collection": [ ; { ; "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/posts" ; } ; ], ; "about": [ ; { ; "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/types\/post" ; } ; ], ; "author": [ ; { ; "embeddable": true, ; "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/users\/1" ; } ; ], ; "replies": [ ; { ; "embeddable": true, ; "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/comments?post=1902" ; } ; ], ; "version-history": [ ; { ; "count": 1, ; "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/posts\/1902\/revisions" ; } ; ], ; "predecessor-version": [ ; { ; "id": 1904, ; "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/posts\/1902\/revisions\/1904" ; } ; ], ; "wp:attachment": [ ; { ; "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/media?parent=1902" ; } ; ], ; "wp:term": [ ; { ; "taxonomy": "category", ; "embeddable": true, ; "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/categories?post=1902" ; }, ; { ; "taxonomy": "post_tag", ; "embeddable": true, ; "href": "https:\/\/cknotes.com\/wp-json\/wp\/v2\/tags?post=1902" ; } ; ], ; "curies": [ ; { ; "name": "wp", ; "href": "https:\/\/api.w.org\/{rel}", ; "templated": true ; } ; ] ; } ; }, ; ... ; ] ; Sample code for parsing the JSON response... ; Use the following online tool to generate parsing code from sample JSON: ; Generate Parsing Code from JSON date_gmt.i = CkDtObj::ckCreate() If date_gmt.i = 0 Debug "Failed to create object." ProcedureReturn EndIf json.i id.i date.s guidRendered.s modified.s modified_gmt.s slug.s status.s v_type.s link.s titleRendered.s contentRendered.s contentProtected.i excerptRendered.s excerptProtected.i author.i featured_media.i comment_status.s ping_status.s sticky.i template.s format.s j.i count_j.i intVal.i href.s embeddable.i count.i taxonomy.s name.s templated.i i.i = 0 count_i.i = CkJsonArray::ckSize(jarrResp) While i < count_i json = CkJsonArray::ckObjectAt(jarrResp,i) id = CkJsonObject::ckIntOf(json,"id") date = CkJsonObject::ckStringOf(json,"date") CkJsonObject::ckDtOf(json,"date_gmt",0,date_gmt) guidRendered = CkJsonObject::ckStringOf(json,"guid.rendered") modified = CkJsonObject::ckStringOf(json,"modified") modified_gmt = CkJsonObject::ckStringOf(json,"modified_gmt") slug = CkJsonObject::ckStringOf(json,"slug") status = CkJsonObject::ckStringOf(json,"status") v_type = CkJsonObject::ckStringOf(json,"type") link = CkJsonObject::ckStringOf(json,"link") titleRendered = CkJsonObject::ckStringOf(json,"title.rendered") contentRendered = CkJsonObject::ckStringOf(json,"content.rendered") contentProtected = CkJsonObject::ckBoolOf(json,"content.protected") excerptRendered = CkJsonObject::ckStringOf(json,"excerpt.rendered") excerptProtected = CkJsonObject::ckBoolOf(json,"excerpt.protected") author = CkJsonObject::ckIntOf(json,"author") featured_media = CkJsonObject::ckIntOf(json,"featured_media") comment_status = CkJsonObject::ckStringOf(json,"comment_status") ping_status = CkJsonObject::ckStringOf(json,"ping_status") sticky = CkJsonObject::ckBoolOf(json,"sticky") template = CkJsonObject::ckStringOf(json,"template") format = CkJsonObject::ckStringOf(json,"format") j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"meta") While j < count_j CkJsonObject::setCkJ(json, j) j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"categories") While j < count_j CkJsonObject::setCkJ(json, j) intVal = CkJsonObject::ckIntOf(json,"categories[j]") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"tags") While j < count_j CkJsonObject::setCkJ(json, j) intVal = CkJsonObject::ckIntOf(json,"tags[j]") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"_links.self") While j < count_j CkJsonObject::setCkJ(json, j) href = CkJsonObject::ckStringOf(json,"_links.self[j].href") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"_links.collection") While j < count_j CkJsonObject::setCkJ(json, j) href = CkJsonObject::ckStringOf(json,"_links.collection[j].href") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"_links.about") While j < count_j CkJsonObject::setCkJ(json, j) href = CkJsonObject::ckStringOf(json,"_links.about[j].href") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"_links.author") While j < count_j CkJsonObject::setCkJ(json, j) embeddable = CkJsonObject::ckBoolOf(json,"_links.author[j].embeddable") href = CkJsonObject::ckStringOf(json,"_links.author[j].href") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"_links.replies") While j < count_j CkJsonObject::setCkJ(json, j) embeddable = CkJsonObject::ckBoolOf(json,"_links.replies[j].embeddable") href = CkJsonObject::ckStringOf(json,"_links.replies[j].href") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"_links.version-history") While j < count_j CkJsonObject::setCkJ(json, j) count = CkJsonObject::ckIntOf(json,"_links.version-history[j].count") href = CkJsonObject::ckStringOf(json,"_links.version-history[j].href") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"_links.predecessor-version") While j < count_j CkJsonObject::setCkJ(json, j) id = CkJsonObject::ckIntOf(json,"_links.predecessor-version[j].id") href = CkJsonObject::ckStringOf(json,"_links.predecessor-version[j].href") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"_links.wp:attachment") While j < count_j CkJsonObject::setCkJ(json, j) href = CkJsonObject::ckStringOf(json,"_links.wp:attachment[j].href") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"_links.wp:term") While j < count_j CkJsonObject::setCkJ(json, j) taxonomy = CkJsonObject::ckStringOf(json,"_links.wp:term[j].taxonomy") embeddable = CkJsonObject::ckBoolOf(json,"_links.wp:term[j].embeddable") href = CkJsonObject::ckStringOf(json,"_links.wp:term[j].href") j = j + 1 Wend j = 0 count_j = CkJsonObject::ckSizeOfArray(json,"_links.curies") While j < count_j CkJsonObject::setCkJ(json, j) name = CkJsonObject::ckStringOf(json,"_links.curies[j].name") href = CkJsonObject::ckStringOf(json,"_links.curies[j].href") templated = CkJsonObject::ckBoolOf(json,"_links.curies[j].templated") j = j + 1 Wend CkJsonObject::ckDispose(json) i = i + 1 Wend CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponseBody) CkJsonArray::ckDispose(jarrResp) CkDtObj::ckDispose(date_gmt) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.