<< googleマップに画像を配置してリンクを張ってみた | main |

pingサーバを作ってみた

2015.05.06 Wednesday | by こも
pingサーバを作ってみました。

正確には、Pingを受け取るコードを書いてみた。…という方が正しいかもしれません。
内容は全然濃くないです(^^;;


やりたかったこと

複数の人が複数のブログを書いています。
記事を投稿した直後に別のサーバでその記事をキュレーション(まとめ)して付加価値をつけたいという思いがありました。


考えたアプローチ

1. 各ブログのpingの送信先の設定に、自社サーバのURLを追加してもらい、ブログを更新すると通知されるようにしてもらう
2. 自社サーバでpingを受け取る
3. 受け取った内容を解析して、必要な情報を取得・DBに蓄積する


今回やったこと

「2. 自社サーバでpingを受け取る」の部分のコードを書いてみました。

pingといってもPOSTメソッドで情報を送っているだけなので、受信側のコードは極めてシンプルです。
とえりあえず、受け取った情報をinput.txtというファイルに書き出す処理にしてみました。

最後にpingを受け取ってエラーがない旨のレスポンスを返します。
(とりあえずエラーがないという前提のレスポンスです。必要に応じて要変更★)

<?php
$result = mb_convert_encoding(file_get_contents("php://input"), "UTF-8", "auto");
file_put_contents('input.txt', $result);

header("Content-Type: text/xml");
echo "<?xml version='1.0'?>";
echo "<methodResponse>";
echo "<params><param><value>";
echo "<struct>";
echo "<member><name>flerror</name><value><boolean>0</boolean></value></member>";
echo "<member><name>message</name><value><string>Thanks for the ping.</string></value></member>";
echo "</struct>";
echo "</value></param></params>";
echo "</methodResponse>";

?>

受信側はたったこれだけです。
あとはブログを更新して、ブログに元々備わっているシステムでpingを送信してもらいます。


さてさて、どんなpingの内容が送られてくるでしょうか?
wordpressと手元のJUGEMブログのpingの送信内容を比較してみました。
<?xml version="1.0"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
  <params>
    <param>
      <value>
        <string>読書の記憶</string>
      </value>
    </param>
    <param>
      <value>
        <string>http://books.classical-whodunit.com/</string>
      </value>
    </param>
  </params>
</methodCall>


<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
  <params>
    <param>
      <value><string>PHPなんか怖くないぞ(>_<)</string></value>
    </param>
    <param>
      <value><string>http://php.steppers-hi.net/</string></value>
    </param>
  </params>
</methodCall>


うーん。投稿した記事の内容をping送信してくれているのかと勝手に期待していましたが、どうやら必要最低限の情報しか含まれていないようですね。

「weblogUpdates.ping」というのは、ブログの更新である旨のメソッドの記述。
あとは、ブログタイトルとブログのルートのURLが含まれているだけでした。

少なくともWordpressとJUGEMブログで共通のフォーマットであることから、なんか規約的なものがあるんでしょうね、きっと。


まぁ、とりあえずpingが受信できるところまではできたので、あとは更新されたURLのRSS情報を読み込んで加工すれば、今回やりたいことはできそうです!!



参考にさせて戴いたサイト:infoScoop開発者ブログ

Comment
Add Comment









Sponsored Link
Recommend
PHP 逆引きレシピ (PROGRAMMER'S RECiPE)
PHP 逆引きレシピ (PROGRAMMER'S RECiPE) (JUGEMレビュー »)
鈴木 憲治,安藤 建一,山田 直明,八木 照朗,山本 義之,河合 勝彦
Recommend
Recommend
Powered
無料ブログ作成サービス JUGEM