{"id":25836,"date":"2021-06-15T16:01:00","date_gmt":"2021-06-15T13:01:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25836"},"modified":"2021-10-17T20:16:41","modified_gmt":"2021-10-17T17:16:41","slug":"kuinka-kayttaa-wordpress-sovellussalasanoja-rest-api-todennukseen","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fi\/kuinka-kayttaa-wordpress-sovellussalasanoja-rest-api-todennukseen\/","title":{"rendered":"Kuinka k\u00e4ytt\u00e4\u00e4 WordPress-sovellussalasanoja REST API -todennukseen"},"content":{"rendered":"<p>WordPress-kehitt\u00e4j\u00e4n\u00e4 sinun on oltava tietoinen WordPressin REST-sovellusliittym\u00e4st\u00e4. WordPress tarjoaa k\u00e4ytt\u00f6liittym\u00e4n (REST API) vuorovaikutukseen WordPressin kanssa sovelluksestasi. N\u00e4m\u00e4 sovellukset voivat olla mit\u00e4 tahansa k\u00e4ytt\u00f6liittym\u00e4ss\u00e4, kuten React, Angular ja muut PHP-sovellukset.<\/p>\n<p>Sovelluksesi ja WordPressin v\u00e4linen vuorovaikutus kommunikoi HTTP-pyynt\u00f6jen kautta. Sinun on l\u00e4hetett\u00e4v\u00e4 HTTP-pyynt\u00f6 WordPress-p\u00e4\u00e4tepisteeseen. Ja sovellusten suojaamiseksi kaikkien n\u00e4iden pyynt\u00f6jen tulisi olla per\u00e4isin voimassa olevista resursseista. Kukaan ei saa julkisesti soittaa WordPress-p\u00e4\u00e4tepisteeseen. API-puhelun suojaamiseksi WordPress hyv\u00e4ksyy <strong>ainutkertaisen tunnuksen<\/strong> valtuutusotsakkeeseen. WordPress vahvistaa t\u00e4m\u00e4n tunnuksen ja k\u00e4sittelee pyynn\u00f6n vastaavasti.<\/p>\n<p>WordPress 5.6 esitteli uuden ominaisuuden &#8221; Sovellussalasanat &#8221;. Sen avulla voit periaatteessa luoda tunnuksen WordPress-hallintapaneelista, jota voidaan sitten k\u00e4ytt\u00e4\u00e4 valtuutusotsikossa.<\/p>\n<p>T\u00e4ss\u00e4 artikkelissa tutkitaan, miten sovellussalasanoja k\u00e4ytet\u00e4\u00e4n WordPress REST -sovellusliittym\u00e4n kanssa. Kirjoitamme REST-sovellusliittym\u00e4n esimerkkikoodin kielill\u00e4 cURL, Guzzle ja jQuery.<\/p>\n<h3>Luo sovellussalasanoja WordPressiss\u00e4<\/h3>\n<p>WordPress 5.6 lis\u00e4\u00e4 oletusarvoisesti osan Sovelluksen salasana <strong>K\u00e4ytt\u00e4j\u00e4t-&gt; Profiili<\/strong> -sivulle. T\u00e4m\u00e4 ominaisuus on k\u00e4ytett\u00e4viss\u00e4 kaikilla SSL \/ HTTPS-palvelimella palvelevilla sivustoilla. Jos sivustosi ei ole HTTPS: ss\u00e4, voit ottaa t\u00e4m\u00e4n ominaisuuden k\u00e4ytt\u00f6\u00f6n alla olevan suodattimen avulla.<\/p>\n<pre><code>add_filter( 'wp_is_application_passwords_available', '__return_true' );<\/code><\/pre>\n<p>Siirry <strong>K\u00e4ytt\u00e4j\u00e4t-&gt; Profiili<\/strong> -sivulle ja luo salasana antamalla sovelluksen nimi. T\u00e4m\u00e4n j\u00e4lkeen WordPress tuottaa salasanan, jota voit k\u00e4ytt\u00e4\u00e4 k\u00e4ytt\u00f6liittym\u00e4sovelluksessa HTTP-pyynt\u00f6ihin. Vaikka WordPress antaa sinulle salasanan, jossa on v\u00e4lily\u00f6ntej\u00e4, voit k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 salasanaa v\u00e4lily\u00f6nnill\u00e4 tai ilman. WordPress nauhoittaa tilat niiden p\u00e4\u00e4ss\u00e4.<\/p>\n<p>Sinulla on sovelluksen salasana. Nyt sinun on luotava kelvollinen tunnus valtuutusotsakkeelle. Kelvollinen tunnus on yhdistelm\u00e4 WordPress-sivuston k\u00e4ytt\u00e4j\u00e4nime\u00e4si ja sovelluksen salasanaa base64-koodatussa muodossa. K\u00e4ytt\u00e4j\u00e4 voi luoda sen helposti seuraavasti.<\/p>\n<pre><code>&lt;?php\n$username = 'admin'; \/\/ site username\n$application_password = 'Ho9c 9vGs AOBG nXb0 FPpr W5vO';\n\u00a0\u00a0\necho base64_encode($username.':'.$application_password);<\/code><\/pre>\n<p>Yll\u00e4 olevassa koodissa v\u00e4litin &#8217;admin&#8217; k\u00e4ytt\u00e4j\u00e4nimen ja oman sovelluksen salasanan. S\u00e4\u00e4d\u00e4 n\u00e4m\u00e4 arvot tunnistetietojesi mukaan. Lopuksi saat kelvollisen tunnuksen base64-koodatun version. Katsotaan nyt, kuinka kutsua WordPress REST -sovellusliittym\u00e4\u00e4 t\u00e4ll\u00e4 tunnuksella.<\/p>\n<h3>Soitetaan WordPress REST -sovellusliittym\u00e4\u00e4n<\/h3>\n<p>WordPress antaa useita p\u00e4\u00e4tepisteit\u00e4, jotka vastaanottavat sovellusliittym\u00e4n pyynn\u00f6t. K\u00e4y l\u00e4pi <a href=\"https:\/\/developer.wordpress.org\/rest-api\/reference\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressin k\u00e4ytett\u00e4viss\u00e4 olevien p\u00e4\u00e4tepisteiden<\/a> luettelo. N\u00e4iden k\u00e4ytett\u00e4viss\u00e4 olevien p\u00e4\u00e4tepisteiden lis\u00e4ksi voit my\u00f6s <a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-lisata-mukautettuja-paatepisteita-wordpress-sovellusliittymaan\/\" title=\"lis\u00e4t\u00e4 omia mukautettuja p\u00e4\u00e4tepisteit\u00e4 WordPressiin\">lis\u00e4t\u00e4 omia mukautettuja p\u00e4\u00e4tepisteit\u00e4 WordPressiin<\/a>.<\/p>\n<p>Opetusohjelman vuoksi otan esimerkin viestin luomisen Viestit-p\u00e4\u00e4tepisteest\u00e4. Jos haluat luoda viestin WordPress-sovellukseen, sinun on l\u00e4hetett\u00e4v\u00e4 POST-pyynn\u00f6t parametreill\u00e4 t\u00e4ll\u00e4 p\u00e4\u00e4tepisteell\u00e4 <code>SITE_URL\/wp-json\/wp\/v2\/posts<\/code>.<\/p>\n<p>Katsotaan nyt, kuinka kutsua t\u00e4m\u00e4 p\u00e4\u00e4tepiste k\u00e4ytt\u00e4m\u00e4ll\u00e4 cURL-, Guzzle- ja jQuery-sovelluksia. Hakemuksesi perusteella voit ottaa viitteen mist\u00e4 tahansa alla olevista vaihtoehdoista.<\/p>\n<h4>WordPress REST -sovellusliittym\u00e4 PHP cURL: \u00e4\u00e4 k\u00e4ytt\u00e4m\u00e4ll\u00e4<\/h4>\n<p>Voit rakentaa sovelluksesi PHP: ss\u00e4. K\u00e4ytt\u00e4j\u00e4 voi olla vuorovaikutuksessa WordPressin kanssa PHP-sovelluksestaan \u200b\u200bk\u00e4ytt\u00e4m\u00e4ll\u00e4 cURL: \u00e4\u00e4 ja Guzzlea. Jos kyseess\u00e4 on cURL, varmista, ett\u00e4 cURL-laajennus on k\u00e4yt\u00f6ss\u00e4 palvelimellasi. T\u00e4m\u00e4n j\u00e4lkeen voit k\u00e4ytt\u00e4\u00e4 alla olevaa koodia, joka luo viestin WordPressiin.<\/p>\n<pre><code>&lt;?php\n$username = 'admin';\n$application_password = 'MGOw EG9V 04xo sUZ0 60wo J2OG';\n\u00a0\n$url = 'SITE_URL\/wp-json\/wp\/v2\/posts';\n\u00a0\u00a0\n$json = json_encode([\n\u00a0\u00a0\u00a0\u00a0'title' =&gt; 'Post using REST API',\n\u00a0\u00a0\u00a0\u00a0'content' =&gt; 'Post content using REST API',\n\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'publish',\n]);\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$ch = curl_init($url);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_USERPWD, $username.':'.$application_password);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application\/json']);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_TIMEOUT, 10);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POST, 1);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);\n\u00a0\u00a0\u00a0\u00a0curl_setopt($ch, CURLOPT_POSTFIELDS, $json);\n\u00a0\u00a0\u00a0\u00a0$result = curl_exec($ch);\n\u00a0\u00a0\u00a0\u00a0$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);\n\u00a0\u00a0\u00a0\u00a0curl_close($ch);\n\u00a0\u00a0\u00a0\u00a0print_r(json_decode($result));\n} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>Muista korvata k\u00e4ytt\u00e4j\u00e4nimen, sovelluksen salasanan ja SITE_URL: n arvot todellisilla arvoillasi. Suorita t\u00e4m\u00e4 koodi ja viestisi luodaan WordPress-hallintapaneeliin.<\/p>\n<h4>WordPress REST -sovellusliittym\u00e4, joka k\u00e4ytt\u00e4\u00e4 Guzzlea PHP: ss\u00e4<\/h4>\n<p><a href=\"https:\/\/docs.guzzlephp.org\/en\/stable\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Guzzle<\/a> on vaihtoehto cURL: lle. Se on PHP HTTP -asiakas, joka helpottaa HTTP-pyynt\u00f6jen l\u00e4hett\u00e4mist\u00e4 ja on triviaali integroida REST-sovellusliittymiin. Asenna Guzzle-kirjasto komennolla:<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p>Seuraavaksi koodisi, jolla luot viestin WordPress REST -sovellusliittym\u00e4n ja Guzzlen avulla, on seuraava.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\n$username = 'admin';\n$application_password = 'MGOw EG9V 04xo sUZ0 60wo J2OG';\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'SITE_URL',\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$response = $client-&gt;request('POST', '\/wp-json\/wp\/v2\/posts', [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'json' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'title' =&gt; 'Post using REST API',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'content' =&gt; 'Post content using REST API',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'publish',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"headers\" =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"Authorization\" =&gt; \"Basic \". base64_encode($username.':'.$application_password)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$body = $response-&gt;getBody();\n\u00a0\u00a0\u00a0\u00a0$arr_body = json_decode($body);\n\u00a0\u00a0\u00a0\u00a0print_r($arr_body);\n} catch(Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>T\u00e4ss\u00e4 k\u00e4yt\u00e4n <code>base64_encode()<\/code>PHP: n toimintoa merkkijonon koodaamiseen. CURL: n tapauksessa meid\u00e4n ei tarvinnut tehd\u00e4 sit\u00e4 nimenomaisesti. CURL koodaa merkkijonon yksin\u00e4\u00e4n.<\/p>\n<h4>WordPress REST -sovellusliittym\u00e4 jQuery\u00e4 k\u00e4ytt\u00e4m\u00e4ll\u00e4<\/h4>\n<p>JQueryn suhteen annamme yleens\u00e4 API-kutsun, kun tietty tapahtuma k\u00e4ynnistyy. T\u00e4m\u00e4 tapahtuma voi olla mit\u00e4 tahansa napsautusta, muutosta, latausta jne. En kirjoita mist\u00e4\u00e4n tapahtumasta. Sen sijaan kirjoitan koodin suoraan, jonka voit k\u00e4\u00e4ri\u00e4 tapahtumiesi sis\u00e4\u00e4n.<\/p>\n<pre><code>&lt;script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js\" integrity=\"sha512-bLT0Qm9VnAYZDflyKcBaQ2gg0hSYNQrJ8RilYldYQ1FxQYoCLtUjuuRuZo+fjqhx\/qtq\/1itJ0C2ejDxltZVFg==\" crossorigin=\"anonymous\"&gt;&lt;\/script&gt;\n&lt;script&gt;\njQuery(function($) {\n\u00a0\u00a0\u00a0\u00a0var username = 'admin';\n\u00a0\u00a0\u00a0\u00a0var application_password = 'MGOw EG9V 04xo sUZ0 60wo J2OG';\n\u00a0\u00a0\u00a0\u00a0$.ajax({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0type: 'POST',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0url: 'SITE_URL\/wp-json\/wp\/v2\/posts',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0beforeSend: function(xhr) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0token = btoa(username + ':' + application_password)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0xhr.setRequestHeader('Authorization', 'Basic ' + token);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0data: {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'title': 'Post using REST API',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'content': 'Post content using REST API',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status': 'publish'\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0success:function(response) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0console.log(response);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0});\n});\n&lt;\/script&gt;<\/code><\/pre>\n<p>Yll\u00e4 olevassa koodissa k\u00e4yt\u00e4n menetelm\u00e4\u00e4 <code>btoa<\/code>. <code>btoa()<\/code>Menetelm\u00e4 koodaa merkkijono pohja-64. Voit my\u00f6s n\u00e4hd\u00e4 API-vastauksen selainkonsolissa.<\/p>\n<p>Toivon, ett\u00e4 saatat oppia k\u00e4ytt\u00e4m\u00e4\u00e4n WordPress-sovelluksen salasanoja sovelluksesi kanssa. Haluaisin kuulla 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\/kuinka-lisata-mukautettuja-paatepisteita-wordpress-sovellusliittymaan\/\" title=\"Kuinka lis\u00e4t\u00e4 mukautettuja p\u00e4\u00e4tepisteit\u00e4 WordPress-sovellusliittym\u00e4\u00e4n\">Kuinka lis\u00e4t\u00e4 mukautettuja p\u00e4\u00e4tepisteit\u00e4 WordPress-sovellusliittym\u00e4\u00e4n<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kuinka-kayttaa-guzzlea-php-http-asiakas-http-pyyntojen-lahettamiseen\/\" title=\"Kuinka k\u00e4ytt\u00e4\u00e4 Guzzlea - PHP HTTP -asiakas HTTP-pyynt\u00f6jen l\u00e4hett\u00e4miseen\">Kuinka k\u00e4ytt\u00e4\u00e4 Guzzlea &#8211; PHP HTTP -asiakas HTTP-pyynt\u00f6jen l\u00e4hett\u00e4miseen<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fi\/kirjaudu-sisaan-puhelinnumerolla-wordpressissa\/\" title=\"Kirjaudu sis\u00e4\u00e4n puhelinnumerolla WordPressiss\u00e4\">Kirjaudu sis\u00e4\u00e4n puhelinnumerolla WordPressiss\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>T\u00e4ss\u00e4 artikkelissa tutkitaan, miten WordPress-sovellussalasanoja k\u00e4ytet\u00e4\u00e4n REST-sovellusliittym\u00e4n todennukseen. Sinun on k\u00e4ytett\u00e4v\u00e4 sovelluksen salasanaa<\/p>\n","protected":false},"author":1,"featured_media":20206,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[499,610],"tags":[843],"class_list":["post-25836","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","category-uncategorized-6","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25836","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=25836"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/posts\/25836\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media\/20206"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/media?parent=25836"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/categories?post=25836"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fi\/wp-json\/wp\/v2\/tags?post=25836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}