{"id":233086,"date":"2023-02-04T13:48:00","date_gmt":"2023-02-04T10:48:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233086"},"modified":"2023-02-04T13:49:31","modified_gmt":"2023-02-04T10:49:31","slug":"kuidas-postitada-automaatselt-uehte-ajaveebi-postitust-sotsiaalvorgustikesse-universaalne-lahendus-koos-ifttt-ja-crontabiga","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/kuidas-postitada-automaatselt-uehte-ajaveebi-postitust-sotsiaalvorgustikesse-universaalne-lahendus-koos-ifttt-ja-crontabiga\/","title":{"rendered":"Kuidas postitada automaatselt \u00fchte ajaveebi postitust sotsiaalv\u00f5rgustikesse? Universaalne lahendus koos IFTTT ja Crontabiga"},"content":{"rendered":"\n<p>Postituste regulaarne postitamine sotsiaalv\u00f5rgustikesse aitab t\u00f5husalt suurendada saidi liiklust, nt <a href=\"https:\/\/helloacm.com\/facebook-crawler-uses-ipv6\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Facebook<\/a>, <a href=\"https:\/\/helloacm.com\/php-function-to-post-to-twitter\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Twitter<\/a>, <a href=\"https:\/\/helloacm.com\/how-to-download-tumblr-video-with-php-script-chrome-extensions-online-tool\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Tumblr<\/a>. Kindlasti on hea, kui suudame selle protsessi automatiseerida. <a href=\"https:\/\/helloacm.com\/how-to-tweet-when-server-restarts-using-ifttt-maker-event-trigger\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IFTTT<\/a> ja crontabi kasutamisel muutub see lihtsaks.<\/p>\n<h2>IFTTT tegija kanal<\/h2>\n<p>Maker-kanali IFTTT-s saab k\u00e4ivitada \u201eveebip\u00e4ringu vastuv\u00f5tmisega&quot; ja see toetab kuni kolme parameetrit, st v\u00e4\u00e4rtus1, v\u00e4\u00e4rtus2 ja v\u00e4\u00e4rtus3 <a href=\"https:\/\/helloacm.com\/how-to-get-notified-when-vultr-balance-is-falling-below-threshold\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">JSON<\/a> -vormingus. N\u00e4iteks saate SayHi s\u00fcndmuse k\u00e4ivitada kahe parameetriga {&quot;value1\u2033:&quot;Tere&quot;,&quot;value2\u2033:&quot;Arvutamine&quot;}.<\/p>\n<pre><code>curl -X POST -H \"Content-Type: application\/json\" -d '{\"value1\":\"Hello\",\"value2\":\"Computing\"}' &lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/maker.ifttt.com\/trigger\/{SayHi}\/with\/key\/REPLACE_KEY\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;maker&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;ifttt&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;trigger&lt;\/span&gt;&lt;span&gt;\/{&lt;\/span&gt;&lt;span&gt;SayHi&lt;\/span&gt;&lt;span&gt;}\/&lt;\/span&gt;&lt;span&gt;with&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;key&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;REPLACE&lt;\/span&gt;&lt;span&gt;_&lt;\/span&gt;&lt;span&gt;KEY&lt;\/span&gt;&lt;\/a&gt;<\/code><\/pre>\n<h2>Postitamine sotsiaalv\u00f5rgustikku IFTTT kaudu<\/h2>\n<p>Uue apleti (<a href=\"https:\/\/helloacm.com\/how-to-automatically-restart-mysql-server-in-the-event-of-crash\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IFTTT<\/a> reegel) loomine Makeriga ja teie valitud suhtlusv\u00f5rgustikuga, nt <a href=\"https:\/\/helloacm.com\/how-to-ban-and-make-a-user-unlike-your-facebook-page\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Facebookiga<\/a>, on lihtne. Samuti peate m\u00e4\u00e4rama s\u00fcndmuse nime, et tegija t\u00f6\u00f6taks (mis on IFTTT \u201esee&#8221; osa).<\/p>\n<p>tegija-saada-veebip\u00e4ring<\/p>\n<p>Seej\u00e4rel peate m\u00e4\u00e4rama toimingu (mis on <a href=\"https:\/\/helloacm.com\/how-to-save-gmail-attachments-backup-to-dropbox-folder-using-ifttt\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">IFTTT<\/a> &quot;see&quot; osa ).<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-155037-61e552650c6d0.jpg\" 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-155037-61e552650c6d0.jpg\" alt=\"Kuidas postitada automaatselt \u00fchte ajaveebi postitust sotsiaalv\u00f5rgustikesse? Universaalne lahendus koos IFTTT ja Crontabiga\"><\/a><\/p>\n<p>parameetrite v\u00e4\u00e4rtus1, v\u00e4\u00e4rtus2 ja v\u00e4\u00e4rtus3 tegija-konfiguratsioon<\/p>\n<h2>Automaatne PHP skript<\/h2>\n<p>N\u00fc\u00fcd saame selle automatiseerimiseks kirjutada PHP skripti: vali postitus (nt juhuslik v\u00f5i ID j\u00e4rgi), mida pole n\u00e4iteks viimase 90 p\u00e4eva jooksul postitatud, pane link andmebaasi ja k\u00e4ivita reegli k\u00e4ivitav Maker kanal postitada oma valitud sotsiaalv\u00f5rgustikku.<\/p>\n<p>WordPressi puhul, kui valime juhusliku postituse, on <a href=\"https:\/\/wordpress.mediadoma.com\/et\/php-skript-wordpressi-kaustade-kaitsmiseks-maeaerates-oiged-failioigused\/\" title=\"PHP skript\">PHP skript<\/a> umbes selline:<\/p>\n<pre><code>&lt;?php\n\u00a0 \/\/ &lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/helloacm.com\/how-to-prevent-script-running-from-browsers\/\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;helloacm&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;how&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;to&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;prevent&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;script&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;running&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;from&lt;\/span&gt;&lt;span&gt;-&lt;\/span&gt;&lt;span&gt;browsers&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;\/a&gt;\n\u00a0 require('deny-from-web.php'); \/\/ avoid calling from the web URL, \n\u00a0 require('db.php'); \u00a0\n\u00a0 $connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, \"blog_database\");\n\u00a0 $today = date(\"Y-m-d h:i:s\");\n\u00a0 $query = \"select \n \u00a0 \u00a0 \u00a0 \u00a0count(1)\n \u00a0 \u00a0 \u00a0from \n \u00a0 \u00a0 \u00a0 \u00a0`wp_posts`\n \u00a0 \u00a0 \u00a0where \n \u00a0 \u00a0 \u00a0 \u00a0(`post_type` = 'post') and \n \u00a0 \u00a0 \u00a0 \u00a0(`post_status` = 'publish')\n \u00a0\";\n\u00a0 $result = mysqli_query($connection, $query);\n\u00a0 $row = mysqli_fetch_row($result);\n\u00a0 $total = $row[0];\n\u00a0 $cnt = 0;\n\u00a0 if ($total &gt; 0) {\n\u00a0 \u00a0 while (1) {\n\u00a0 \u00a0 \u00a0 $idx = mt_rand(0, $total - 1);\n\u00a0 \u00a0 \u00a0 $query = \"\n \u00a0 \u00a0 \u00a0 \u00a0select \n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0`post_name`, `ID`, `post_title` \n \u00a0 \u00a0 \u00a0 \u00a0from \n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0`wp_posts`\n \u00a0 \u00a0 \u00a0 \u00a0where \n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0(`post_type` = 'post') and \n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0(`post_status` = 'publish')\n \u00a0 \u00a0 \u00a0 \u00a0limit $idx, 1\n \u00a0 \u00a0 \u00a0\";\n\u00a0 \u00a0 \u00a0 $result = mysqli_query($connection, $query);\n\u00a0 \u00a0 \u00a0 $row = mysqli_fetch_array($result);\n\u00a0 \u00a0 \u00a0 $url = \"&lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/helloacm.com\/\".$row['post_name\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;helloacm&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/\".$&lt;\/span&gt;&lt;span&gt;row&lt;\/span&gt;&lt;span&gt;['&lt;\/span&gt;&lt;span&gt;post&lt;\/span&gt;&lt;span&gt;_&lt;\/span&gt;&lt;span&gt;name&lt;\/span&gt;&lt;\/a&gt;']. '\/';\n\u00a0 \u00a0 \u00a0 $title = $row['post_title'];\n\u00a0 \u00a0 \u00a0 $query2 = \"select date(`posttime`) from `twitter` where `url` = '$url' order by `posttime` desc limit 1\";\n\u00a0 \u00a0 \u00a0 $result2 = mysqli_query($connection, $query2);\n\u00a0 \u00a0 \u00a0 if (mysqli_num_rows($result2) &gt; 0) {\n\u00a0 \u00a0 \u00a0 \u00a0 $lastrow = mysqli_fetch_row($result2);\n\u00a0 \u00a0 \u00a0 \u00a0 $last = $lastrow[0];\n\u00a0 \u00a0 \u00a0 \u00a0 $diff = abs((strtotime($today) - strtotime($last)) \/ 24 \/ 3600);\n\u00a0 \u00a0 \u00a0 \u00a0 if ($diff &lt;= 90) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 $cnt ++;\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if ($cnt &gt; 16) {\/\/ avoid endless loop\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 break;\u00a0 \n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 continue;\n\u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 $query = \"\n \u00a0 \u00a0 \u00a0 \u00a0insert into `twitter`\n \u00a0 \u00a0 \u00a0 \u00a0set \n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0`url` = '$url',\n \u00a0 \u00a0 \u00a0 \u00a0 \u00a0`posttime` = '$today'\n \u00a0 \u00a0 \u00a0\";\n\u00a0 \u00a0 \u00a0 mysqli_query($connection, $query);\n\u00a0 \u00a0 \u00a0 $msg = $title; \u00a0 \u00a0 \u00a0\n\u00a0 \u00a0 \u00a0 $value1 = $url;\n\u00a0 \u00a0 \u00a0 $value2 = $title;\n\u00a0 \u00a0 \u00a0 echo \"value2 = \". $value2. \" n\";\n\u00a0 \u00a0 \u00a0 echo \"value1 = \". $value1. \" n\"; \u00a0 \u00a0 \u00a0 \u00a0 \n\u00a0 \u00a0 \u00a0 \/\/ invoke the IFTTT Maker Channel \u00a0 \u00a0\n\u00a0 \u00a0 \u00a0 shell_exec(\"curl -s -X POST -H \"Content-Type: application\/json\" -d '{\"value1\":\"$value1\",\"value2\":\"$value2\"}' &lt;a class=\"vglnk\" target=\"_blank\" href=\"https:\/\/maker.ifttt.com\/trigger\/{justyy}\/with\/key\/YOUR_KEY\" rel=\"nofollow\"&gt;&lt;span&gt;https&lt;\/span&gt;&lt;span&gt;:\/\/&lt;\/span&gt;&lt;span&gt;maker&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;ifttt&lt;\/span&gt;&lt;span&gt;.&lt;\/span&gt;&lt;span&gt;com&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;trigger&lt;\/span&gt;&lt;span&gt;\/{&lt;\/span&gt;&lt;span&gt;justyy&lt;\/span&gt;&lt;span&gt;}\/&lt;\/span&gt;&lt;span&gt;with&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;key&lt;\/span&gt;&lt;span&gt;\/&lt;\/span&gt;&lt;span&gt;YOUR&lt;\/span&gt;&lt;span&gt;_&lt;\/span&gt;&lt;span&gt;KEY&lt;\/span&gt;&lt;\/a&gt;\");\n\u00a0 \u00a0 \u00a0 break;\n\u00a0 \u00a0 }\n\u00a0 }\n\u00a0 echo \"Done!n\";<\/code><\/pre>\n<p>Eeltoodu toimimiseks peate postitatud artiklite salvestamiseks looma tabeli (<a href=\"https:\/\/wordpress.mediadoma.com\/et\/kuidas-printida-mysql-i-tabeli-kokkuvotet-php-abil\/\" title=\"MySQL\">MySQL<\/a> -i kaudu ):<\/p>\n<pre><code>--\n-- Table structure for table `twitter`\n--\n\nCREATE TABLE `twitter` (`id` bigint(32) NOT NULL,\n  `url` varchar(255) NOT NULL,\n  `posttime` date NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;\n\n--\n-- Indexes for dumped tables\n--\n\n--\n-- Indexes for table `twitter`\n--\nALTER TABLE `twitter`\n  ADD PRIMARY KEY (`id`),\n  ADD KEY `urla` (`url`),\n  ADD KEY `dd` (`posttime`);\n\n--\n-- AUTO_INCREMENT for dumped tables\n--\n\n--\n-- AUTO_INCREMENT for table `twitter`\n--\nALTER TABLE `twitter`\n  MODIFY `id` bigint(32) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;<\/code><\/pre>\n<h2>Crontabi konfiguratsioon ajaveebi automaatseks postitamiseks<\/h2>\n<p>Viimane samm p\u00e4rast \u00fclaltoodud skripti testimist on <a href=\"https:\/\/helloacm.com\/escape-linux-command-to-prevent-security-holes-from-php-shell_exec-function\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">PHP k\u00e4su<\/a> lisamine <a href=\"https:\/\/helloacm.com\/php-script-to-test-crontab\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">crontabi<\/a> t\u00f6\u00f6dele. Saate seadistada sagedust nt @daily v\u00f5i @weekly, @monthly jne.<\/p>\n<pre><code>@daily php \/path-to-your-script\/ifftt-post-blog.php<\/code><\/pre>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kuidas postitada automaatselt \u00fchte ajaveebi postitust sotsiaalv\u00f5rgustikesse? Universaalne lahendus koos IFTTT ja Crontabiga<\/p>\n","protected":false},"author":1,"featured_media":224083,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,749,781,833,1017,894,842,812,863],"tags":[1165],"class_list":["post-233086","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-avatud-laehtekoodiga","category-avatud-laehtekoodiga-tarkvara","category-juhend-algajatele","category-kasulikud-saidid","category-kood","category-opetused","category-pistikprogrammid","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233086","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=233086"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/233086\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/224083"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=233086"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=233086"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=233086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}