{"id":231795,"date":"2022-12-29T10:21:00","date_gmt":"2022-12-29T07:21:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231795"},"modified":"2022-12-29T10:22:30","modified_gmt":"2022-12-29T07:22:30","slug":"valtuutusotsikoiden-laehettaeminen-wordpressin-avulla","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/valtuutusotsikoiden-laehettaeminen-wordpressin-avulla\/","title":{"rendered":"Valtuutusotsikoiden l\u00e4hett\u00e4minen WordPressin avulla"},"content":{"rendered":"<p>Aina kun teemme et\u00e4pyynt\u00f6j\u00e4 WordPressin avulla, k\u00e4yt\u00e4mme todenn\u00e4k\u00f6isesti jotakin seuraavista toiminnoista:<\/p>\n<ul>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_safe_remote_post\/https:\/\/developer.wordpress.org\/reference\/functions\/wp_remote_post\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_remote_post<\/a><\/li>\n<li><a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_safe_remote_post\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_safe_remote_post<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_remote_get\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_remote_get<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/fi\/etaepyynnoet-wp_safe_remote_get-sovelluksella\/\" title=\"wp_safe_remote_get\">wp_safe_remote_get<\/a><\/li>\n<\/ul>\n<p>Ja kyll\u00e4, joskus k\u00e4yt\u00e4mme <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/ero-curl-ja-wordpress-pyyntoeissae\/\" title=\"cURL\">cURL<\/a> -osoitetta projektin luonteesta riippuen, mutta se ei kuulu t\u00e4m\u00e4n viestin sis\u00e4lt\u00f6\u00f6n.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159539-61e6f74b66e53.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159539-61e6f74b66e53.png\" alt=\"Valtuutusotsikoiden l\u00e4hett\u00e4minen WordPressin avulla\"><\/a><\/p>\n<p>T\u00e4ss\u00e4 artikkelissa haluan puhua erityisesti et\u00e4pyynt\u00f6jen tekemisest\u00e4 ja otsikoiden m\u00e4\u00e4ritt\u00e4misest\u00e4 kolmannen osapuolen sovellusliittym\u00e4\u00e4 vastaan.<\/p>\n<h2>Valtuutusotsikot WordPressill\u00e4<\/h2>\n<p>Aina kun on kyse asynkronisten pyynt\u00f6jen tekemisest\u00e4 WordPressin kanssa, prosessi menee usein n\u00e4in:<\/p>\n<ol>\n<li>M\u00e4\u00e4rit\u00e4 JavaScript-toiminto soittaaksesi palvelinpuolelle (tietysti suojatulla <a href=\"https:\/\/codex.wordpress.org\/WordPress_Nonces\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">noncella<\/a> ),<\/li>\n<li>Pyyd\u00e4 palvelinpuolta suorittamaan pyynt\u00f6 jollakin edell\u00e4 mainituista toiminnoista,<\/li>\n<li>Palauta vastaus joko <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_send_json_success\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">onnistumis-<\/a> tai <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_send_json_error\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">virheilmoituksena<\/a> ,<\/li>\n<li>Pyyd\u00e4 asiakaspuolen JavaScripti\u00e4 k\u00e4sittelem\u00e4\u00e4n vastausta mill\u00e4 tahansa tavalla, joka vastauksen perusteella n\u00e4ytt\u00e4\u00e4 sopivalta.<\/li>\n<\/ol>\n<p>Mutta ent\u00e4 jos palvelimelta teht\u00e4v\u00e4 API-pyynt\u00f6 vaatii jotain enemm\u00e4n kuin perusp\u00e4\u00e4tepisteen muutamalla parametrilla?<\/p>\n<p>Tarkemmin sanottuna ent\u00e4 jos kirjoituksesi edellytt\u00e4\u00e4, ett\u00e4 annat jonkinlaisen valtuutuksen ty\u00f6llesi? Onneksi WordPress antaa meille mahdollisuuden asettaa otsikot, jotka ratkaisevat juuri t\u00e4m\u00e4n.<\/p>\n<p>Jos haluat toteuttaa jotain t\u00e4m\u00e4n kaltaista, oletan, ett\u00e4 sis\u00e4lt\u00f6tyyppi on JSON ja ett\u00e4 valtuutus on jonkin tyyppinen tunnus (toteutus voi kuitenkin vaihdella sen j\u00e4rjestelm\u00e4n mukaan, jossa k\u00e4yt\u00e4t ty\u00f6ss\u00e4).<\/p>\n<p>T\u00e4ss\u00e4 tapauksessa tunnukseni tunnistetaan yksinkertaisesti <strong>$tokeniksi.<\/strong> Ja t\u00e4ss\u00e4 <a href=\"https:\/\/gist.github.com\/tommcfarlin\/b0050a06f124f9884b22426b1bd51989\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">on yksinkertainen esimerkki:<\/a><\/p>\n<pre><code>&lt;?php\n\n$response = wp_safe_remote_post(\n    $url,\n    [\n        'headers'     =&gt; [\n            'Content-Type'  =&gt; 'application\/json',\n            'Authorization' =&gt; $token\n        ],\n        'body'        =&gt; wp_json_encode($args),\n        'method'      =&gt; 'POST',\n        'data_format' =&gt; 'body',\n    ]\n);<\/code><\/pre>\n<h2>Jotain huomionarvoista<\/h2>\n<p>Jos is\u00e4nt\u00e4si k\u00e4ytt\u00e4\u00e4 Apachea ja t\u00e4m\u00e4ntyyppinen pyynt\u00f6 ei toimi, sinun on todenn\u00e4k\u00f6isesti p\u00e4ivitett\u00e4v\u00e4 <code>htaccess<\/code>tiedostosi siten, ett\u00e4 se sis\u00e4lt\u00e4\u00e4 seuraavan s\u00e4\u00e4nn\u00f6n: <code>SetEnvIf Authorization \"(.*)\" HTTP_AUTHORIZATION=$1<\/code>.<\/p>\n<p>Rekvisiitta <a href=\"https:\/\/ggwi.cz\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Georgelle<\/a>, ett\u00e4 h\u00e4n sai minut siihen.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esimerkki valtuutuksen l\u00e4hett\u00e4misest\u00e4 WordPressill\u00e4, sen sis\u00e4\u00e4nrakennetuilla API-liittymill\u00e4 ja mahdollisilla verkkopalvelimen korjauksilla, joita saatat joutua tekem\u00e4\u00e4n.<\/p>\n","protected":false},"author":1,"featured_media":237098,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,895,917,843,864],"tags":[1166],"class_list":["post-231795","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-koodi","category-muut","category-opetusohjelmia","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=231795"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/231795\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/237098"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=231795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=231795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=231795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}