特定のユーザーのTwitterブログから最新の投稿をダウンロードする

指定したユーザーのTwitterブログから最後のメッセージを受け取る小さなスクリプトを作成しました。 キャッシュ機能があります-メッセージをテキストファイルに保存するため、毎回マイクロブログRSSフィードをダウンロードして処理する必要がありません。 一定の時間が経過すると、キャッシュはWebから更新されます。

仕組み


このスクリプトは、開発中のプロジェクトの1つ用に作成しました。 原則は簡単です。必要なユーザーのRSSフィードが読み込まれ、最後のエントリが選択され、必要に応じてテキストファイルにキャッシュされます。 XMLはDOMDocumentを介して処理されます。

public $cache_fileは、キャッシュファイルの場所を定義します。

public $cache_periodは、キャッシュのリフレッシュレートを担当しpublic $cache_period 。 秒単位で示されます( 3600は1時間に相当します)。 値が0の場合、キャッシュは無視されます。

他のすべては理解できると思います。 ご質問がある場合は、お問い合わせください。

コンパイル済みコード



class GetLastTwitt{

public $cache_file = './last_twitt.txt';
public $cache_period = 3600;

private $username;
private $dom;

function __construct($username){
$this->username = $username;
}

private function setEnv(){
$feed_url = 'http://twitter.com/statuses/user_timeline/'.$this->username.'.rss';

$this->dom = new DOMDocument();
$this->dom->load($feed_url);
}

private function returnLastTwitt (){
if ($this->cache_period != 0)
if (file_exists($this->cache_file))
if ($this->cache_period > $this->getCacheDateDiff())
return $this->getLastFromCache();

return $this->getLastFromWeb($this->username);
}

private function getLastFromWeb($username){
$this->setEnv();
$rows = $this->dom->getElementsByTagName('item');
$last_twitt = $rows->item(0)->getElementsByTagName('title')->item(0)->nodeValue;
$this->cache_twitt($last_twitt);
return $last_twitt;
}

private function cache_twitt($msg){
$handle = fopen($this->cache_file,'w');
fwrite($handle, $msg);
fclose($handle);
}

private function getCacheDateDiff(){
return date('U') — filemtime($this->cache_file);
}

private function getLastFromCache(){
$handle = fopen($this->cache_file,'r');
$cached_twitt = fread($handle, filesize($this->cache_file));
fclose($handle);
return $cached_twitt;
}

final function getLast(){
return $this->returnLastTwitt();
}

}

$a = new GetLastTwitt('skaizer');
echo $a->getLast();


ダウンロードする

質問



ところで、このスクリプトをブログなどのサイトに統合すると、検索エンジンロボットによるサイトへのアクセス頻度が増加するのかという疑問が生じました。 実際、Twitterで新しい更新が行われるたびに、サイトのほぼすべてのページでコンテンツが変更されるため、検索エンジンはコンテンツの更新を頻繁に記録する必要があります。

私のブログでこのトピックのミラー。

Source: https://habr.com/ru/post/J52153/


All Articles