{"id":234115,"date":"2023-02-04T13:16:00","date_gmt":"2023-02-04T10:16:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=234115"},"modified":"2023-02-04T13:24:41","modified_gmt":"2023-02-04T10:24:41","slug":"hur-postar-man-automatiskt-ett-blogginlaegg-paa-sociala-naetverk-den-universella-loesningen-med-ifttt-och-crontab","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/hur-postar-man-automatiskt-ett-blogginlaegg-paa-sociala-naetverk-den-universella-loesningen-med-ifttt-och-crontab\/","title":{"rendered":"Hur postar man automatiskt ett blogginl\u00e4gg p\u00e5 sociala n\u00e4tverk? Den universella l\u00f6sningen med IFTTT och Crontab"},"content":{"rendered":"\n<p>Att regelbundet publicera inl\u00e4ggen p\u00e5 sociala n\u00e4tverk hj\u00e4lper till att \u00f6ka webbplatstrafiken effektivt, t.ex. <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>. Det \u00e4r verkligen bra om vi kan automatisera denna process. Med anv\u00e4ndning av <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> och crontab blir detta enkelt.<\/p>\n<h2>IFTTT Maker Channel<\/h2>\n<p>Maker-kanalen i IFTTT kan triggas genom att &quot;ta emot en webbf\u00f6rfr\u00e5gan&quot;, och den st\u00f6der upp till 3 parametrar, dvs v\u00e4rde1, v\u00e4rde2 och v\u00e4rde3 i formatet <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>. Till exempel kan du anropa SayHi-h\u00e4ndelsen med tv\u00e5 parametrar {&#8221;value1\u2033:&quot;Hello&quot;,&quot;value2\u2033:&quot;Computing&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>Skickar till sociala n\u00e4tverk via IFTTT<\/h2>\n<p>Det \u00e4r enkelt att skapa en ny applet (<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> regel) med Maker och det sociala n\u00e4tverk du v\u00e4ljer, t.ex. <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\">Facebook<\/a>. Du m\u00e5ste ocks\u00e5 ange namnet p\u00e5 h\u00e4ndelsen f\u00f6r att Maker ska fungera (vilket \u00e4r &quot;den h\u00e4r&quot; delen av IFTTT).<\/p>\n<p>maker-receive-a-web-request<\/p>\n<p>Sedan m\u00e5ste du specificera \u00e5tg\u00e4rden (som \u00e4r &quot;den&quot; delen av <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=\"Hur postar man automatiskt ett blogginl\u00e4gg p\u00e5 sociala n\u00e4tverk? Den universella l\u00f6sningen med IFTTT och Crontab\"><\/a><\/p>\n<p>tillverkares konfiguration av parametrarna v\u00e4rde1, v\u00e4rde2 och v\u00e4rde3<\/p>\n<h2>Automatiskt PHP-skript<\/h2>\n<p>Nu kan vi skriva ett PHP-skript f\u00f6r att automatisera detta: v\u00e4lj ett inl\u00e4gg (t.ex. slumpm\u00e4ssigt eller med ID) som inte har postats under de senaste t.ex. 90 dagarna, l\u00e4gg l\u00e4nken i databasen och anropa Maker-kanalen som utl\u00f6ser regeln att g\u00f6ra inl\u00e4gg p\u00e5 det sociala n\u00e4tverket du v\u00e4ljer.<\/p>\n<p>F\u00f6r WordPress, om vi v\u00e4ljer ett slumpm\u00e4ssigt inl\u00e4gg, blir <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/php-skript-foer-att-saekra-wordpress-mapparna-genom-att-staella-in-korrekta-filbehoerigheter\/\" title=\"PHP-skriptet\">PHP-skriptet<\/a> ungef\u00e4r s\u00e5 h\u00e4r:<\/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>F\u00f6r att ovanst\u00e5ende ska fungera m\u00e5ste du skapa en tabell f\u00f6r att lagra de postade artiklarna (via <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/hur-man-skriver-ut-mysql-tabellsammanfattning-med-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>Crontab-konfiguration f\u00f6r automatiskt blogginl\u00e4gg<\/h2>\n<p>Det sista steget efter att du har testat skriptet ovan \u00e4r att l\u00e4gga till <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-kommandot<\/a> till <a href=\"https:\/\/helloacm.com\/php-script-to-test-crontab\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">crontab-<\/a> jobb. Du kan konfigurera frekvensen t.ex. @dagligen eller @veckovis, @m\u00e5nadsvis etc.<\/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\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hur postar man automatiskt ett blogginl\u00e4gg p\u00e5 sociala n\u00e4tverk? Den universella l\u00f6sningen med IFTTT och 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":[1022,838,848,901,755,818,787,724,868],"tags":[1173],"class_list":["post-234115","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-anvandbara-webbplatser","category-guide-foer-nyboerjare","category-handledningar","category-koda","category-oeppen-kaella","category-plugins-3","category-programvara-med-oeppen-kaellkod","category-utvecklaren","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/234115","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=234115"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/234115\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/224083"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=234115"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=234115"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=234115"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}