CakePHPで更新PINGを実装する方法


WordPressなどのブログツールで実装されている更新PING機能があります。
この機能をCakePHPで独自機能として実装する場合の手順を紹介します。

利用するライブラリ

■Incutio PHP XML-RPC library (IXR)
https://github.com/irazasyed/php-ixr

ダウンロード後、「IXR_Library.php」をCakePHPのアプリケーション側「Vendor」ディレクトリに配置します。

「AppController.php」へ記述

「AppController.php」へ処理を記述していきます。
ここでは「ping()」としてメソッド名を設定していますので、各自任意のメソッド名にしてもらえればと思います。

  public function ping($title=NULL,$url=NULL) {
require_once(APP.'Vendor'.DS.'IXR_Library.php');
$sendTo=array(
【ここにはPINGサーバ先のURLを記述】
);
if(!empty($title)&&!empty($url)){
foreach($sendTo as $send){
$client = new IXR_Client($send);
$client->query('weblogUpdates.ping',$title,$url);
}exit;
return true;
}
return false;
}

上記のコードを記述後、任意のコントローラー内で呼び出すと指定されたPINGサーバへ更新PINGを送信されます。

PINGサーバ先について

更新PINGを受け付けているサーバーは常に最新のものはなく、急に無くなったり、作られたりと変わっていきます。
そのため、ここで紹介するサーバー先は参考として利用して頂ければと思います。

http://blogsearch.google.co.jp/ping/RPC2
http://blogsearch.google.com/ping/RPC2
http://ping.dendou.jp/
http://ping.freeblogranking.com/xmlrpc/
http://ping.feedburner.com/
http://ping.rss.drecom.jp/
http://rpc.weblogs.com/RPC2
http://rpc.pingomatic.com/
http://rpc.reader.livedoor.com/ping
http://api.my.yahoo.co.jp/RPC2
http://api.my.yahoo.com/RPC2

【2019年2月24日現在】
打ち消しされているURLはエラーが返されますので、リストからは外すべき対象と思われます。



スポンサーリンク

Filed under: CakePHPTagged with: , , ,