.Water-Sunlight
.サイトメニュー
.検索
.オンライン状況
登録ユーザ: 0
ゲスト: 4
.
Top / 更新Ping

更新Ping

RSS/Auto-Discovery はサイトにとって必須ですが、これを補間するものとして更新Pingがあります。RSSはサイトサマリや更新情報としては必要十分ですが、受身的です。更新Pingによってよりタイムリーな更新情報をユーザに提供できます。

更新Pingとは

更新Pingとは、Weblogなどを更新したときに、公開されているPingサーバーに対してそのことを通知することをいいます。Pingサーバーはたくさん送られてくる更新Pingを元に、更新情報を時間順並べて公開したり、収集したデータ(メタデータ)を再配信したりします。メッセージはBlogger APIと同じXML-PRCという方法で送信されweblogUpdates.pingと呼ばれます。

weblogUpdates.ping

詳しくは以下を参照して下さい。

XML-PRC

weblogUpdates.ping (weblogname, weblogurl, changesurl=weblogurl,
categoryname="none") returns struct
weblogname
Weblogの名前(必須)
weblogurl
WeblogのURL(必須)
changesurl
更新チェックされたURL(オプション)
categoryname
カテゴリー名(オプション)

この仕様から分かるように更新Pingは、単なる「合図」です。Pingサーバは更新Pingを受けて、RSSを読みにいき、そして、新しい記事を見つけます。

weblogUpdates.pingのリクエストとレスポンスの例を示します。この例は上のサイトから引用したものです。

リクエスト

POST /RPC2 HTTP/1.0
User-Agent: Radio UserLand/7.1b7 (WinNT)
Host: rpc.weblogs.com
Content-Type: text/xml
Content-length: 250

<?xml version="1.0"?>
<methodCall>
  <methodName>weblogUpdates.ping</methodName>
  <params>
    <param>
      <value>Scripting News</value>
    </param>
    <param>
      <value>http://www.scripting.com/</value>
    </param>
  </params>
</methodCall>

レスポンス

HTTP/1.1 200 OK
Connection: close
Content-Length: 333
Content-Type: text/xml
Date: Sun, 30 Sep 2001 20:02:30 GMT
Server: UserLand Frontier/7.0.1-WinNT 

<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>flerror</name>
            <value><boolean>0</boolean></value>
          </member>
          <member>
            <name>message</name>
            <value>Thanks for the ping.</value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodResponse>

PHP/PEAR を使った更新Pingの例

<?php
require_once('XML/RPC.php');

$blogTitle='Blog Title';
$blogUrl='http://www.hogehoge.com/'; 

$pingServer='ping.example.com';
$pingPath='/rpc';

$params=array(
  new XML_RPC_Value($blogTitle,'string'),
  new XML_RPC_Value($blogUrl,'string')
);

$message=new XML_RPC_Message('weblogUpdates.ping',$params);
$client=new XML_RPC_Client($pingPath,$pingServer,80);
$response=$client->send($message);
 
if($response->faultCode()){
  exit('Error');
}
else{
  exit('OK');
}
?>

参考サイト

ここにはPHPによるPingサーバの例があります。

ここにPerlによるPingサーバの例があります。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Counter: 4389, today: 1, yesterday: 1
Last-modified: Wed, 28 Jun 2006 14:02:20 JST (4164d)

.