{"id":233078,"date":"2023-02-04T14:05:00","date_gmt":"2023-02-04T11:05:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=233078"},"modified":"2023-02-04T14:14:30","modified_gmt":"2023-02-04T11:14:30","slug":"jak-automatycznie-opublikowac-jeden-wpis-na-blogu-w-sieciach-spolecznosciowych-uniwersalne-rozwiazanie-z-ifttt-i-crontab","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pl\/jak-automatycznie-opublikowac-jeden-wpis-na-blogu-w-sieciach-spolecznosciowych-uniwersalne-rozwiazanie-z-ifttt-i-crontab\/","title":{"rendered":"Jak automatycznie opublikowa\u0107 jeden wpis na blogu w sieciach spo\u0142eczno\u015bciowych? Uniwersalne rozwi\u0105zanie z IFTTT i Crontab"},"content":{"rendered":"\n<p>Regularne publikowanie post\u00f3w na portalach spo\u0142eczno\u015bciowych pozwala skutecznie zwi\u0119kszy\u0107 ruch na stronie, np. <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>. Na pewno dobrze, je\u015bli mo\u017cemy zautomatyzowa\u0107 ten proces. Dzi\u0119ki wykorzystaniu <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> i crontab staje si\u0119 to \u0142atwe.<\/p>\n<h2>Kana\u0142 tw\u00f3rcy IFTTT<\/h2>\n<p>Kana\u0142 Maker w IFTTT mo\u017ce zosta\u0107 wyzwolony przez \u201eotrzymanie \u017c\u0105dania internetowego&quot; i obs\u0142uguje do 3 parametr\u00f3w tj. value1, value2 i value3 w formacie <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>. Na przyk\u0142ad, mo\u017cesz wywo\u0142a\u0107 zdarzenie SayHi z dwoma parametrami {\u201ewarto\u015b\u01071\u2033:&quot;Hello&#8221;,&#8221;warto\u015b\u01072\u2033:&#8221;Computing&#8221;}.<\/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>Wysy\u0142anie do sieci spo\u0142eczno\u015bciowej za po\u015brednictwem IFTTT<\/h2>\n<p>\u0141atwo jest utworzy\u0107 nowy aplet (regu\u0142a <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>) za pomoc\u0105 Maker i wybranej sieci spo\u0142eczno\u015bciowej, np. <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\">Facebooka<\/a>. Musisz tak\u017ce poda\u0107 nazw\u0119 wydarzenia, aby Maker zadzia\u0142a\u0142 (jest to \u201eta&#8221; cz\u0119\u015b\u0107 IFTTT).<\/p>\n<p>tw\u00f3rca-otrzymania-pro\u015bby-strony<\/p>\n<p>Nast\u0119pnie musisz okre\u015bli\u0107 akcj\u0119 (kt\u00f3ra jest \u201etamt\u0105&#8221; cz\u0119\u015bci\u0105 <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> ).<\/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=\"Jak automatycznie opublikowa\u0107 jeden wpis na blogu w sieciach spo\u0142eczno\u015bciowych? Uniwersalne rozwi\u0105zanie z IFTTT i Crontab\"><\/a><\/p>\n<p>konfiguracja producenta parametr\u00f3w value1, value2 i value3<\/p>\n<h2>Automatyczny skrypt PHP<\/h2>\n<p>Teraz mo\u017cemy napisa\u0107 skrypt PHP, kt\u00f3ry to zautomatyzuje: wybierz post (np. losowy lub po ID), kt\u00f3ry nie zosta\u0142 opublikowany w ci\u0105gu ostatnich np. 90 dni, umie\u015b\u0107 link w bazie danych i wywo\u0142aj kana\u0142 Maker, kt\u00f3ry uruchamia regu\u0142\u0119 publikowa\u0107 w wybranej sieci spo\u0142eczno\u015bciowej.<\/p>\n<p>W przypadku WordPressa, je\u015bli wybierzemy losowy post, <a href=\"https:\/\/wordpress.mediadoma.com\/pl\/skrypt-php-do-zabezpieczenia-folderow-wordpress-poprzez-ustawienie-odpowiednich-uprawnien-do-plikow\/\" title=\"skrypt PHP\">skrypt PHP<\/a> b\u0119dzie wygl\u0105da\u0142 mniej wi\u0119cej tak:<\/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>Aby powy\u017csze zadzia\u0142a\u0142o, musisz utworzy\u0107 tabel\u0119 do przechowywania opublikowanych artyku\u0142\u00f3w (poprzez <a href=\"https:\/\/wordpress.mediadoma.com\/pl\/jak-wydrukowac-podsumowanie-tabeli-mysql-za-pomoca-php\/\" title=\"MySQL\">MySQL<\/a> ):<\/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>Konfiguracja Crontab do automatycznego publikowania w blogu<\/h2>\n<p>Ostatnim krokiem po przetestowaniu powy\u017cszego skryptu jest dodanie <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\">polecenia PHP<\/a> do zada\u0144 <a href=\"https:\/\/helloacm.com\/php-script-to-test-crontab\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">crontab .<\/a> Mo\u017cesz skonfigurowa\u0107 cz\u0119stotliwo\u015b\u0107 np. @daily lub @weekly, @monthly itp.<\/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\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jak automatycznie opublikowa\u0107 jeden wpis na blogu w sieciach spo\u0142eczno\u015bciowych? Uniwersalne rozwi\u0105zanie z IFTTT i Crontab<\/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":[721,897,784,752,836,1020,845,866,815],"tags":[1169],"class_list":["post-233078","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deweloper","category-kod","category-oprogramowanie-open-source","category-otwarte-zrodlo","category-przewodnik-dla-poczatkujacych","category-przydatne-strony","category-samouczki","category-wordpress-7","category-wtyczki","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/comments?post=233078"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/posts\/233078\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media\/224083"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/media?parent=233078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/categories?post=233078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pl\/wp-json\/wp\/v2\/tags?post=233078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}