✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas kuvada Twitteri arhiivi WordPressis PHP ja MySQL abil Crontabi toega?

23

Tweeter ei suuda kõiki säutse kuvada. Mul on praeguseks üle 600 säutsu (enamik neist on saadetud PHP skriptiga VPS -is ). Kui soovite salvestada kõigi oma ajalooliste säutsude koopiad oma andmebaasi kohapeal, võite loomulikult taotleda arhiivi oma Twitteri kontol [Seaded – Konto – Taotle arhiivi].

Kuidas kuvada Twitteri arhiivi Wordpressis PHP ja MySQL abil Crontabi toega?

päring-twitter-arhiiv

Kuidas oleks sellega, et saate salvestada kõik säutsud ja kuvada need oma ajaveebis (WordPressi lehel)? Idee on suurepärane, sest säutse võib vaadelda kui SEO eesmärkidel mõeldud artikleid. Seega peaksite WordPressi andmebaasis looma tabeli, näiteks andke meile nimi tweets.

Kuidas kuvada Twitteri arhiivi Wordpressis PHP ja MySQL abil Crontabi toega?

säutsu-ajalugu-tabel

Meil on neli veergu, need on: säutsu ID, tekst, kuupäev/kellaaeg, retweet count. Muidugi saate lisateavet twitteri API staatuste/kasutaja_ajajoone alt, kuid meid huvitavad just need neli.

Kohalik säilitamine

Twitteri API-de kasutamisel on alati kiiruspiirang, nii et te ei saa neid väga sageli kasutada. Siin on aga mõte PHP-skriptil, mis töötab crontabis (iga paari tunni järel) ja hangib säutsud alla ja salvestab need kohapeal andmebaasi.

TwitterOAuthi php teeki saame kasutada Twitteri API-dega suhtlemiseks:

// <a class="vglnk" target="_blank" href="http://helloacm.com" rel="nofollow"><span>helloacm</span><span>.</span><span>com</span></a>
// How to Show Tweets Archive in WordPress using PHP and MySQL with Crontab Support
require('TwitterOAuth-1/TwitterOAuth/TwitterOAuth.php');
require('TwitterOAuth-1/TwitterOAuth/Exception/TwitterException.php');
require('TwitterOAuth-1/config.php');  
use TwitterOAuthTwitterOAuth;
date_default_timezone_set('UTC');
 
$config = array(
    'consumer_key'       => $twitter_apikey, // API key
    'consumer_secret'    => $twitter_apisecret, // API secret
    'oauth_token'        => $twitter_accesstoken, // not needed for app only
    'oauth_token_secret' => $twitter_accesstokensecret,
    'output_format'      => 'object'
);
$tw = new TwitterOAuth($config);

Salvestage ülalpool kui twitter.php, et saaksime need Twitteri API-dele juurde pääseda iga kord.

// <a class="vglnk" target="_blank" href="http://helloacm.com" rel="nofollow"><span>helloacm</span><span>.</span><span>com</span></a>
// How to Show Tweets Archive in WordPress using PHP and MySQL with Crontab Support
  require("twitter.php"); 
 
  $params = array(
      'screen_name' => $twitter_screenname,
      'user_id' => $twitter_ownerid,
      'count' => 300,
      'include_rts' => 1,
      'exclude_replies' => false
  );
  $tweets = $tw->get('statuses/user_timeline', $params);
 
  mysql_query("SET NAMES utf8");
  if(!empty($tweets)) {
      foreach($tweets as $tweet) {
          $id = $tweet->id;
          $retweet_count = (integer)$tweet->retweet_count;
          $created_at = $tweet->created_at;
          $text = $tweet->text;
          $text = mysql_real_escape_string($text);
          $query = "select count(1) from `tweets` where `id` = '$id'";
          $result = mysql_query($query);
          $cnt = mysql_result($result, 0, 0);
          if ($cnt == 0) {
            $query = "insert into `tweets` set `id`='$id', `text`='$text', `created_at`='$created_at',`retweet_count`='$retweet_count'";            
          } else {
            $query = "update `tweets` set `id`='$id', `text`='$text', `created_at`='$created_at',`retweet_count`='$retweet_count' where `id`='$id'";            
          }
          mysql_query($query);
      }
  }

Mysql_query ("SET NAMES utf8") tagab, et säutsud sisestatakse andmebaasi õigesti. Mb_detect_encoding kontrollib, et API-dest tagastatud säutsudel on tegelikult UTF-8 kodeering. Ülaltoodud PHP-skript kontrollib duplikaate (Twitteri põhjal). ID), nii et esimest korda lisatakse uus säuts, kuid teisel korral värskendatakse seda lihtsalt.

Ühe API-kõnega saab saada maksimaalne arv säutse, nt 300. Kui teil on rohkem säutse, võite alati skripti mitu korda helistada, et kõik säutsud alla laadida. Peame aga määrama parameetri max_id, mis tagastab sellest ID-st vanemad säutsud (väiksemad ID-d). Nii me saame:

// <a class="vglnk" target="_blank" href="http://helloacm.com" rel="nofollow"><span>helloacm</span><span>.</span><span>com</span></a>
// How to Show Tweets Archive in WordPress using PHP and MySQL with Crontab Support
  $query = "select min(`id`) from `tweets`";
  $result = mysql_query($query) or die(mysql_error());
  $cnt = mysql_result($result, 0, 0);    
 
  $params = array(
      'screen_name' => $twitter_screenname,
      'user_id' => $twitter_ownerid,
      'count' => 1000,
      'max_id' => $cnt,
      'include_rts' => 1,
      'exclude_replies' => false
  );

Idee on kontrollida vanimat säutsu (min id-ga) ja tagastada ainult sellest vanemad säutsud, nii et kui käivitate skripte mitu korda, impordite kõik säutsud.

Nüüd on meil andmed valmis ja saame selle skripti käivitada VPS-i serveris iga paari tunni järel (sagedus sõltub sinust), kasutades käsku crontab -e .

Kuva säutsud WordPressi lehtedel

Nüüd näitab see leht helloacm.com/tweets-history/ kõiki andmebaasi puid. PHP/HTML-i käivitamiseks WordPressi lehel oleks vaja pluginat. Selliseid wordpressi pluginaid on lihtne leida.

Looge WordPressi leht ja sisestage järgmine:

[ include ]tweets.php[ / include ]

Seejärel peame sisestama PHP-skripti sellesse ülaltoodud tweets.php -sse .

<php
// <a class="vglnk" target="_blank" href="http://helloacm.com" rel="nofollow"><span>helloacm</span><span>.</span><span>com</span></a>
// How to Show Tweets Archive in WordPress using PHP and MySQL with Crontab Support
  global $wpdb;
  
  $query = "select count(1) from `tweets`";
  $total = $wpdb->get_var($query);
  
  $per = 50;
  $page = get_query_var('page');
  if (!$page) {
    $page = 1;
  }
  
  // pagination
  $totalpages = ceil($total / $per);
  if ($page > $totalpages) {
    $page = 1;
  }
  
  $lowerbound = ($page - 1) * $per;
  $upperbound = $lowerbound + $per;
  $lmt=" limit ". $lowerbound. ",". $per;
  
  $query = "select * from `tweets` order by `id` desc $lmt";
  
  $result = $wpdb->get_results($query);
  
  if ($result) {
    foreach ($result as $tweet) {
      $created_at = $tweet->created_at;
      $text = $tweet->text;
      $retweet_count = $tweet->retweet_count;
      // display tweets
      echo "$text - $created_at";
      if ($retweet_count > 0) {
        echo "($retweet_count Retweeted)";
      }
    }
  }  
  
  // show prev/next page links
  if ($page > 1) {
    echo "<a href='?page=".($page-1)."'>Newer Tweets</a> - ";
  }
  if ($page < $totalpages) {
    echo "<a href='?page=".($page+1)."'>Older Tweets</a>";
  }

Kasutame päringustringi hankimiseks käsku get_query_var(‘page’), et teaksime, millist lehte me vaatame.

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem