{"id":25813,"date":"2021-06-14T16:48:00","date_gmt":"2021-06-14T13:48:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25813"},"modified":"2021-10-17T20:17:25","modified_gmt":"2021-10-17T17:17:25","slug":"kuinka-lisata-mukautettuja-paatepisteita-wordpress-sovellusliittymaan","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/kuinka-lisata-mukautettuja-paatepisteita-wordpress-sovellusliittymaan\/","title":{"rendered":"Kuinka lis\u00e4t\u00e4 mukautettuja p\u00e4\u00e4tepisteit\u00e4 WordPress-sovellusliittym\u00e4\u00e4n"},"content":{"rendered":"<p>Viime aikoina ty\u00f6skentelin projektissa, jossa halusimme k\u00e4ytt\u00e4\u00e4 AngularJS: \u00e4\u00e4 k\u00e4ytt\u00f6liittym\u00e4ss\u00e4 ja WordPressi\u00e4 taustana. Tietojen vaihtamiseksi AngularJS: n ja WordPressin v\u00e4lill\u00e4 k\u00e4ytimme WordPress REST -sovellusliittym\u00e4\u00e4. Se oli hyv\u00e4 kokemus ty\u00f6skentelyst\u00e4 REST-sovellusliittym\u00e4n kanssa WordPressiss\u00e4. WordPress tarjoaa eritt\u00e4in puhtaan ja tehokkaan tavan aloittaa REST-sovellusliittym\u00e4n k\u00e4ytt\u00f6. T\u00e4m\u00e4n suositun CMS: n avulla voit my\u00f6s rakentaa mukautetun p\u00e4\u00e4tepisteen l\u00e4hett\u00e4m\u00e4\u00e4n \/ vastaanottamaan tietoja sen kautta.<\/p>\n<p>T\u00e4ss\u00e4 artikkelissa tutkitaan, miten mukautettu p\u00e4\u00e4tepiste luodaan WordPress REST -sovellusliittym\u00e4ss\u00e4. Aion rakentaa mukautetun p\u00e4\u00e4tepisteen GET- ja POST-pyynn\u00f6lle.<\/p>\n<h3>WordPress REST -sovellusliittym\u00e4n k\u00e4ytt\u00f6<\/h3>\n<p>Kaikki tiet\u00e4v\u00e4t mobiilisovellusten ja JavaScript-kehysten suosion. Kun rakennat mobiilisovellusta tai verkkosivustoa JavaScript-kehyksen avulla, sinun on oltava vuorovaikutuksessa taustan kanssa tietojenvaihtoa varten.<\/p>\n<p>Voit valita mink\u00e4 tahansa alustan, kuten WordPress, Laravel, taustaj\u00e4rjestelm\u00e4\u00e4 varten. Ainoa vaatimus on, ett\u00e4 sinulla on oltava API-p\u00e4\u00e4tepisteet backend-alustallasi tietojen vaihtamiseksi k\u00e4ytt\u00f6liittym\u00e4n kanssa. Frontend-j\u00e4rjestelm\u00e4 antaa API-kutsun backendille. Taustaj\u00e4rjestelm\u00e4\u00e4n pit\u00e4isi rakentaa j\u00e4rjestelm\u00e4, joka vastaanottaa API-pyynn\u00f6t ja k\u00e4sittelee ne.<\/p>\n<p>Enimm\u00e4kseen k\u00e4ytimme kahden tyyppisi\u00e4 pyynt\u00f6j\u00e4 API-p\u00e4\u00e4tepisteiss\u00e4 &#8211; GET ja POST. Vaikka kutsumme API: ta GET-pyynn\u00f6n avulla, API antaa tietoja tietokannasta vastauksena tai poistaa tiedot tietokannasta. POST-pyynt\u00f6jen tapauksessa joko lis\u00e4\u00e4mme tietueita tietokantaan tai tarkistamme tiedot tietokantaan n\u00e4hden. Tietenk\u00e4\u00e4n se ei ole peukalos\u00e4\u00e4nt\u00f6. K\u00e4ytt\u00e4j\u00e4t voivat p\u00e4\u00e4tt\u00e4\u00e4, miten se k\u00e4ytt\u00e4ytyy, riippuen heid\u00e4n vaatimuksistaan.<\/p>\n<h3>Valtuutus WordPress REST -sovellusliittym\u00e4n avulla<\/h3>\n<p>WordPress REST -sovellusliittym\u00e4 edellytt\u00e4\u00e4, ett\u00e4 noudatat perustodennuksen kulkua. Perus todennuksessa sinun on l\u00e4hetett\u00e4v\u00e4 valtuutus-otsikossa tunnus, kun l\u00e4het\u00e4t API-pyynt\u00f6\u00e4. K\u00e4ynnist\u00e4 WordPress 5.6, j\u00e4rjestelm\u00e4\u00e4n otetaan k\u00e4ytt\u00f6\u00f6n uusi ominaisuus &#8217;Application Passwords&#8217;. T\u00e4t\u00e4 sovelluksen salasanaa (k\u00e4ytt\u00e4j\u00e4nimell\u00e4) voidaan k\u00e4ytt\u00e4\u00e4 tunnuksena Valtuutus-otsikossa.<\/p>\n<p>Sovellussalasanat ovat kaikkien k\u00e4ytt\u00e4jien k\u00e4ytett\u00e4viss\u00e4 SSL \/ HTTPS-palvelimella palvelevilla sivustoilla. Jos jostain syyst\u00e4 et k\u00e4yt\u00e4 SSL: \u00e4\u00e4 verkkosivustollasi, annat sen saataville alla olevan suodattimen avulla.<\/p>\n<pre><code>add_filter( 'wp_is_application_passwords_available', '__return_true' );<\/code><\/pre>\n<p>L\u00f6yd\u00e4t vaihtoehdon Sovellussalasanat <strong>K\u00e4ytt\u00e4j\u00e4t-&gt; Profiili<\/strong> -sivulta. Luo salasana kirjoittamalla vain sovelluksen nimi.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20211-6081cde961b7f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20211-6081cde961b7f.png\" alt=\"Kuinka lis\u00e4t\u00e4 mukautettuja p\u00e4\u00e4tepisteit\u00e4 WordPress-sovellusliittym\u00e4\u00e4n\" ><\/a><\/p>\n<p>Kuvakaappauksessa huomaat v\u00e4lily\u00f6nnit salasanassa. Sovellussalasanoja voidaan k\u00e4ytt\u00e4\u00e4 v\u00e4lily\u00f6ntien kanssa tai ilman. Jos v\u00e4lily\u00f6nnit sis\u00e4ltyv\u00e4t, v\u00e4lily\u00f6nnit vain poistetaan ennen kuin salasana tiivistet\u00e4\u00e4n ja vahvistetaan WordPressin lopussa.<\/p>\n<p>Nyt olet valmis salasanalla. Seuraavaksi sinun on luotava todennustunnuksen luomiseksi k\u00e4ytt\u00e4j\u00e4nimest\u00e4si ja sovelluksen salasanasta Base64-koodattu versio. Oletetaan, ett\u00e4 k\u00e4ytt\u00e4j\u00e4nimesi on &#8217;admin&#8217; ja salasanasi on &#8217;Ho9c 9vGs AOBG nXb0 FPpr W5vO&#8217;. K\u00e4yt\u00e4 seuraavaa lausetta, joka antaa sinulle lopullisen kelvollisen tunnuksen.<\/p>\n<pre><code>&lt;?php\n$username = 'admin';\n$application_password = 'Ho9c 9vGs AOBG nXb0 FPpr W5vO';\n\u00a0\necho base64_encode($username.':'.$application_password);<\/code><\/pre>\n<p>Yll\u00e4 oleva lause palauttaa tunnuksen arvon muodossa <code>YWRtaW46SG85YyA5dkdzIEFPQkcgblhiMCBGUHByIFc1dk8=<\/code>. T\u00e4m\u00e4 tunnus, joka sinun on l\u00e4hetett\u00e4v\u00e4 Valtuutus-otsikossa, kun soitat WordPress REST -sovellusliittym\u00e4\u00e4.<\/p>\n<h3>Kirjaudu sis\u00e4\u00e4n WordPress REST -sovellusliittym\u00e4n avulla<\/h3>\n<p>Olemme valmiita Basic Auth -tunnusarvon kanssa. Rakennetaan nyt mukautettu p\u00e4\u00e4tepiste kirjautumisj\u00e4rjestelm\u00e4lle. Alla olevaan koodiin kirjoitamme API-p\u00e4\u00e4tepisteen, joka vastaanottaa k\u00e4ytt\u00e4j\u00e4n tunnistetiedot ja tarkistaa, ovatko tiedot oikeita vai eiv\u00e4t. Sinun on lis\u00e4tt\u00e4v\u00e4 t\u00e4m\u00e4 koodi teematiedostoon <code>functions.php<\/code>.<\/p>\n<pre><code>add_action(\n\u00a0\u00a0\u00a0\u00a0'rest_api_init',\n\u00a0\u00a0\u00a0\u00a0function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0register_rest_route(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'api',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'login',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'methods'\u00a0 =&gt; 'POST',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'callback' =&gt; 'login',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0}\n);<\/code><\/pre>\n<p>WordPress tarjoaa toiminnon rest_api_init, jonka avulla voimme rakentaa mukautettuja p\u00e4\u00e4tepisteit\u00e4mme. T\u00e4ss\u00e4 k\u00e4yt\u00e4n <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_rest_route\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_rest_route-<\/a> toimintoa, joka tuottaa yll\u00e4 olevan API-p\u00e4\u00e4tepisteen nimell\u00e4 YOUR_SITE_URL \/ wp-json \/ api \/ login.<\/p>\n<p>Koodissamme &#8217;api&#8217; on nimitila, &#8217;login&#8217; on reitti, menetelm\u00e4 on &#8217;POST&#8217; ja takaisinsoittotoiminto on &#8217;login&#8217;. Soittomenetelm\u00e4ll\u00e4 on todellinen logiikka.<\/p>\n<p>Kirjautumisvirran logiikan kirjoittamiseksi vaaditaan POST-parametreja, jotka ovat s\u00e4hk\u00f6posti ja salasana, jotka tulisi l\u00e4hett\u00e4\u00e4 k\u00e4ytt\u00f6liittym\u00e4st\u00e4 Valtuutus-otsikon kanssa. Kun l\u00e4het\u00e4t n\u00e4it\u00e4 tietoja, sinun on l\u00e4hetett\u00e4v\u00e4 ne JSON-muodossa. Esimerkiksi VSCode: sta k\u00e4ytt\u00e4en <a href=\"https:\/\/themewp.inform.click\/fi\/rest-client-laajennus-visual-studio-koodille\/\" title=\"Rest Client -laajennusta\">Rest Client -laajennusta<\/a> l\u00e4het\u00e4n POST-pyynn\u00f6n alla olevan kuvakaappauksen mukaisesti.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20211-6081cde961b7f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20211-6081cde961b7f.png\" alt=\"Kuinka lis\u00e4t\u00e4 mukautettuja p\u00e4\u00e4tepisteit\u00e4 WordPress-sovellusliittym\u00e4\u00e4n\" ><\/a><\/p>\n<p>T\u00e4\u00e4ll\u00e4 olemme v\u00e4litt\u00e4neet edellisess\u00e4 vaiheessa luodun tunnuksen Authorization header -arvoksi.<\/p>\n<p>Lis\u00e4\u00e4 alla oleva <code>login()<\/code>menetelm\u00e4n koodi <code>functions.php<\/code>tiedostoon.<\/p>\n<pre><code>function login( WP_REST_Request $request) {\n\u00a0\u00a0\u00a0\u00a0$arr_request = json_decode( $request-&gt;get_body() );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (! empty( $arr_request-&gt;email) &amp;&amp;! empty( $arr_request-&gt;password)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ this returns the user ID and other info from the user name.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user = get_user_by( 'email', $arr_request-&gt;email );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! $user) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ if the user name doesn't exist.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'error',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'Wrong email address.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ check the user's login with their password.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! wp_check_password( $arr_request-&gt;password, $user-&gt;user_pass, $user-&gt;ID)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ if the password is incorrect for the specified user.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'error',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'Wrong password.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'success',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'User credentials are correct.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'error',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'Email and password are required.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p><strong>Huomaa:<\/strong> Jos sait virheen, kuten &quot;URL-osoitetta ja pyynt\u00f6tapaa vastaavaa reitti\u00e4 ei l\u00f6ytynyt&quot;, sinun on p\u00e4ivitett\u00e4v\u00e4 pysyv\u00e4 linkki.<\/p>\n<p>Kun olet saanut &#8217;status&#8217; -avaimen &#8221; menestys &#8221; -arvon, voit kirjautua k\u00e4ytt\u00e4j\u00e4n sis\u00e4\u00e4n k\u00e4ytt\u00f6liittym\u00e4sovellukseen.<\/p>\n<h3>Luo p\u00e4\u00e4tepiste GET-pyynt\u00f6\u00e4 varten<\/h3>\n<p>Olemme oppineet rakentamaan mukautettuja p\u00e4\u00e4tepisteit\u00e4 POST-pyynn\u00f6ille. Tarkastellaan nyt GET-pyynt\u00f6\u00e4 WordPress REST -sovellusliittym\u00e4n avulla. T\u00e4t\u00e4 varten kirjoitan API, joka poistaa k\u00e4ytt\u00e4j\u00e4n. K\u00e4ytt\u00f6liittym\u00e4st\u00e4 sinun tulisi v\u00e4litt\u00e4\u00e4 k\u00e4ytt\u00e4j\u00e4n tunnus GET-parametrina.<\/p>\n<pre><code>add_action(\n\u00a0\u00a0\u00a0\u00a0'rest_api_init',\n\u00a0\u00a0\u00a0\u00a0function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0register_rest_route(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'api',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'delete_user\/(?P&lt;id&gt;d+)',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'methods'\u00a0 =&gt; 'GET',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'callback' =&gt; 'delete_user',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0}\n);<\/code><\/pre>\n<p>T\u00e4m\u00e4 koodi luo API-p\u00e4\u00e4tepisteen muodossa YOUR_SITE_URL \/ wp-json \/ api \/ delete_user \/ id. T\u00e4h\u00e4n p\u00e4\u00e4tepisteeseen tunnuksen sijasta sinun on v\u00e4litett\u00e4v\u00e4 k\u00e4ytt\u00e4j\u00e4n todellinen tunnus.<\/p>\n<p>Soittomenetelm\u00e4ll\u00e4 <code>delete_user<\/code>on seuraava koodi.<\/p>\n<pre><code>function delete_user( $data) {\n\u00a0\u00a0\u00a0\u00a0\/\/ delete the user\n\u00a0\u00a0\u00a0\u00a0require_once(ABSPATH.'wp-admin\/includes\/user.php' );\n\u00a0\u00a0\u00a0\u00a0if (wp_delete_user($data['id'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'success',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'User deleted successfully.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'error',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'It seems you passed the wrong user id.',\n\u00a0\u00a0\u00a0\u00a0];\n}<\/code><\/pre>\n<p>Toivon, ett\u00e4 ymm\u00e4rr\u00e4t, miten voit luoda mukautetun p\u00e4\u00e4tepisteen WordPress REST -sovellusliittym\u00e4ss\u00e4. Jaa ajatuksesi ja ehdotuksesi alla olevassa kommenttiosassa.<\/p>\n<h4>Aiheeseen liittyv\u00e4t artikkelit<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/pikaopas-woocommerce-rest-sovellusliittymasta\/\" title=\"Pikaopas WooCommerce REST -sovellusliittym\u00e4st\u00e4\">Pikaopas WooCommerce REST -sovellusliittym\u00e4st\u00e4<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/aiheeseen-liittyvien-tuotteiden-nayttaminen-woocommerce-rest-sovellusliittyman-avulla\/\" title=\"Aiheeseen liittyvien tuotteiden n\u00e4ytt\u00e4minen WooCommerce REST -sovellusliittym\u00e4n avulla\">Aiheeseen liittyvien tuotteiden n\u00e4ytt\u00e4minen WooCommerce REST -sovellusliittym\u00e4n avulla<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/puhe-tekstiksi-kayttamalla-amazon-transcriptia-php-ssa\/\" title=\"Puhe-tekstiksi k\u00e4ytt\u00e4m\u00e4ll\u00e4 Amazon Transcripti\u00e4 PHP: ss\u00e4\">Puhe-tekstiksi k\u00e4ytt\u00e4m\u00e4ll\u00e4 Amazon Transcripti\u00e4 PHP: ss\u00e4<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Haluatko luoda mukautetun p\u00e4\u00e4tepisteen WordPress REST -sovellusliittym\u00e4ss\u00e4? Rakennettaessa mobiilisovellusta tai verkkosivustoa JavaScripti-kehyksell\u00e4<\/p>\n","protected":false},"author":1,"featured_media":21623,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[610],"tags":[843],"class_list":["post-25813","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-6","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/comments?post=25813"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25813\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/21623"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=25813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=25813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=25813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}