✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Як автоматично опублікувати одну публікацію в блозі в соціальних мережах? Універсальне рішення з IFTTT і Crontab

14

Регулярне розміщення публікацій у соціальних мережах допомагає ефективно збільшити відвідуваність сайту, наприклад Facebook, Twitter, Tumblr. Звичайно, добре, якщо ми зможемо автоматизувати цей процес. З використанням IFTTT і crontab це стає легко.

Канал IFTTT Maker

Канал Maker в IFTTT можна запустити шляхом «отримання веб-запиту», і він підтримує до 3 параметрів, тобто значення1, значення2 і значення3 у форматі JSON. Наприклад, ви можете викликати подію SayHi за допомогою двох параметрів {“value1″:"Hello","value2″:”Computing”}.

curl -X POST -H "Content-Type: application/json" -d '{"value1":"Hello","value2":"Computing"}' <a class="vglnk" target="_blank" href="https://maker.ifttt.com/trigger/{SayHi}/with/key/REPLACE_KEY" rel="nofollow"><span>https</span><span>://</span><span>maker</span><span>.</span><span>ifttt</span><span>.</span><span>com</span><span>/</span><span>trigger</span><span>/{</span><span>SayHi</span><span>}/</span><span>with</span><span>/</span><span>key</span><span>/</span><span>REPLACE</span><span>_</span><span>KEY</span></a>

Публікація в соціальній мережі через IFTTT

Легко створити новий аплет (правило IFTTT) за допомогою Maker і соціальної мережі на ваш вибір, наприклад Facebook. Крім того, вам потрібно вказати назву події, щоб Maker працював (це частина IFTTT «це»).

maker-receive-a-web-request

Потім вам потрібно вказати дію (яка є частиною «that» IFTTT ).

Як автоматично опублікувати одну публікацію в блозі в соціальних мережах? Універсальне рішення з IFTTT і Crontab

Конфігурація виробника параметрів value1, value2 і value3

Автоматичний скрипт PHP

Тепер ми можемо написати сценарій PHP, щоб автоматизувати це: вибрати допис (наприклад, випадковий або за ідентифікатором), який не публікувався протягом останніх, наприклад 90 днів, розмістити посилання в базі даних і викликати канал Maker, який запускає правило щоб опублікувати в соціальній мережі на ваш вибір.

Для WordPress, якщо ми виберемо випадкову публікацію, сценарій PHP буде приблизно таким:

<?php
  // <a class="vglnk" target="_blank" href="https://helloacm.com/how-to-prevent-script-running-from-browsers/" rel="nofollow"><span>https</span><span>://</span><span>helloacm</span><span>.</span><span>com</span><span>/</span><span>how</span><span>-</span><span>to</span><span>-</span><span>prevent</span><span>-</span><span>script</span><span>-</span><span>running</span><span>-</span><span>from</span><span>-</span><span>browsers</span><span>/</span></a>
  require('deny-from-web.php'); // avoid calling from the web URL, 
  require('db.php');  
  $connection = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, "blog_database");
  $today = date("Y-m-d h:i:s");
  $query = "select 
        count(1)
      from 
        `wp_posts`
      where 
        (`post_type` = 'post') and 
        (`post_status` = 'publish')
  ";
  $result = mysqli_query($connection, $query);
  $row = mysqli_fetch_row($result);
  $total = $row[0];
  $cnt = 0;
  if ($total > 0) {
    while (1) {
      $idx = mt_rand(0, $total - 1);
      $query = "
        select 
          `post_name`, `ID`, `post_title` 
        from 
          `wp_posts`
        where 
          (`post_type` = 'post') and 
          (`post_status` = 'publish')
        limit $idx, 1
      ";
      $result = mysqli_query($connection, $query);
      $row = mysqli_fetch_array($result);
      $url = "<a class="vglnk" target="_blank" href="https://helloacm.com/".$row['post_name" rel="nofollow"><span>https</span><span>://</span><span>helloacm</span><span>.</span><span>com</span><span>/".$</span><span>row</span><span>['</span><span>post</span><span>_</span><span>name</span></a>']. '/';
      $title = $row['post_title'];
      $query2 = "select date(`posttime`) from `twitter` where `url` = '$url' order by `posttime` desc limit 1";
      $result2 = mysqli_query($connection, $query2);
      if (mysqli_num_rows($result2) > 0) {
        $lastrow = mysqli_fetch_row($result2);
        $last = $lastrow[0];
        $diff = abs((strtotime($today) - strtotime($last)) / 24 / 3600);
        if ($diff <= 90) {
          $cnt ++;
          if ($cnt > 16) {// avoid endless loop
            break;  
          }
          continue;
        }
      }
      $query = "
        insert into `twitter`
        set 
          `url` = '$url',
          `posttime` = '$today'
      ";
      mysqli_query($connection, $query);
      $msg = $title;      
      $value1 = $url;
      $value2 = $title;
      echo "value2 = ". $value2. " n";
      echo "value1 = ". $value1. " n";         
      // invoke the IFTTT Maker Channel    
      shell_exec("curl -s -X POST -H "Content-Type: application/json" -d '{"value1":"$value1","value2":"$value2"}' <a class="vglnk" target="_blank" href="https://maker.ifttt.com/trigger/{justyy}/with/key/YOUR_KEY" rel="nofollow"><span>https</span><span>://</span><span>maker</span><span>.</span><span>ifttt</span><span>.</span><span>com</span><span>/</span><span>trigger</span><span>/{</span><span>justyy</span><span>}/</span><span>with</span><span>/</span><span>key</span><span>/</span><span>YOUR</span><span>_</span><span>KEY</span></a>");
      break;
    }
  }
  echo "Done!n";

Щоб вищезазначене працювало, вам потрібно створити таблицю для зберігання опублікованих статей (через MySQL ):

--
-- Table structure for table `twitter`
--

CREATE TABLE `twitter` (`id` bigint(32) NOT NULL,
  `url` varchar(255) NOT NULL,
  `posttime` date NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `twitter`
--
ALTER TABLE `twitter`
  ADD PRIMARY KEY (`id`),
  ADD KEY `urla` (`url`),
  ADD KEY `dd` (`posttime`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `twitter`
--
ALTER TABLE `twitter`
  MODIFY `id` bigint(32) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;

Конфігурація Crontab для автоматичного розміщення в блозі

Останнім кроком після того, як ви перевірили вищезгаданий сценарій, є додавання команди PHP до завдань crontab. Ви можете налаштувати частоту, наприклад, @daily або @weekly, @monthly тощо.

@daily php /path-to-your-script/ifftt-post-blog.php

Джерело запису: helloacm.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі