XML_RPC2でGoogle Blog SearchにPingを送る

2009/2/21 9051hit

Google Blog SearchがXML_RPCでPingを受け付けているようなので
対応させてみた。

使用したのはPearのXML_RPC2

ソースはこんな感じ

ニッキを更新したときに呼び出されるコード


$values = array('サイト名', 'サイトの URL','変更をチェックするURL','RSS、RDF、Atom フィードの URL ');
$pingGun = new PingGun('http://blogsearch.google.co.jp/ping/RPC2');
$pingGun->Fire($values, true);

$message = $pingGun->Message;

$pingGun->Target = 'http://api.my.yahoo.co.jp/RPC2';
$values = array('サイト名', 'サイトのURL');
$pingGun->Fire($values, false);
$message .= $pingGun->Message;

return $pingGun->Message;


Ping銃クラス

class PingGun{

public $Target = "";
public $Message = "";

/**
* __construct
*
* @param string target TargetUrl
*/
public function __construct($target){
require_once 'XML/RPC2/Client.php';
$this->Target = $target;
}

/**
* Fire
*
* @param array values ParameterArray (BlogName, BlogUrl, [Check Url], [RSS Url])
* @param bool isExtention extendedPing?
* @return bool ValidatePing
*/
public function Fire($values, $isExtention)
{
$options = array(
'prefix' => 'weblogUpdates.'
);

$client = XML_RPC2_Client::create($this->Target, $options);

try{
if($isExtension){
$result = $client->extendedPing($values[0],$values[1],$values[2],$values[3]);
}
else{
$result = $client->ping($values[0],$values[1]);
}

$this->Message = '
'.$this->Target.'にPINGを送りました
'.$result['message'];
return true;
}
catch(XML_RPC2_FaultException $e){
$this->Message = "RPCサーバがエラーを返しました
". $result->getFaultCode() . ' : ' .$e->getMessage();
return false;
}
catch(Exception $e){
$this->Message = "RPCサーバの実行に失敗しました
".$e->getMessage();
return false;
}
}

}

追記 Yahooにも送るように変更してみた

前:今日買った本と欲しい本 次:乗ってカンガルー

関連キーワード

[PHP][IT]

コメント

名前:kensei|投稿日:2009/02/21 18:16

pingを打つと、ロボット来てくれるの?

名前:kenz|投稿日:2009/02/21 21:18

一応、そういうことになってるよ
お定まりながらgoogleの判断に寄るみたいだけど

コメントを投稿する

名前URI
コメント