Re: 楽天ブログの ping 送信先 (Google ブログ検索への更新通知)
又しても妙な書き込みです。ご容赦を。先日の楽天ブログの ping 送信先の続きです。ちゃたさんの所で、Google さんに ping 送ると検索での表示順位が上がるかも~(意訳というのを拝見して、「そんなことがあろうとは!」と思いました。「これは…ネタになるかも!?」と感じましたので、がっぷり食いついてみる(笑。 そして、トラックバックも送ってみる(ぇ試しに、グーグルさんで「ヨーグルティング」を検索すると、私の wiki が110番目くらいにいました。何故、あっちが先にヒットする…タイトルに含まれているし、凄い勢いで「ヨーグルティング」連呼しているからかな?このページですね。ヨーグルティング - EnayaのWikihttp://wiki.livedoor.jp/enaya1205/d/%A5%E8%A1%BC%A5%B0%A5%EB%A5%C6%A5%A3%A5%F3%A5%B0最近更新してないのがバレバレです(汗。まだ書いてませんけど、楽天ブログで書き込みカテゴリが50件になったので、この Wiki もお役ごめんになりそうではあります…手動更新なので私的には面倒なんですよ(汗。お気づきの方もいらっしゃるかも知れませんが、←のカテゴリの記述が変わったのはそれが理由です。そして、意外なことにヤフーさんでは、このブログが40番台に…しかも、昔の記事なのにブログ名が「Enayaの杜」になってるし。更に、ヨーグルティングの検索結果はヤフーさんの方が多いし^^;侮りがたし…っていうか、自分たちのグループの1つだろっ!という気がしないでもないです。もっとも、ブログ検索はというと…ときおり、凄いブログがヒットします^^;例えば…「ヨーグルティング 八百長」でブログ検索これって、文章は自動生成ですよね?手動だったら…逆にある意味凄いですが。こういうのに対して「スプログ(スパムブログ」って名前があるみたいです。知らなかった。さて、前置きが長くなりましたが。ここから本題です。実は、グーグルさんの(REST ではない) ping の形式は、 weblogUpdates.ping ではなくて weblogUpdates.extendedPing が推奨のようです。もっとも、両方受け取って貰えます。ヘルプを見ただけですと、 weblogUpdates.extendedPing のみかと思われそうですが…。Google ブログ検索の更新通知 API についてhttp://www.google.co.jp/help/blogsearch/pinging_API.htmlweblogUpdates.ping と違って、3番目、4番目のも必須になってますね。なお、動作確認の時に、livedoor さんのブログのが change.xml に上がってるのを見かけましたが、<weblog> 要素 の rssUrl フィード がありませんでしたので、weblogUpdates.extendedPing で送っている訳ではないのかもしれません。そんな訳で、ソースです。前回のとほんのちょっとだけしか違わないです。一応、前回のが読みにくい感じがしたので、清書してみました。動作環境は、前回のと一緒です。<?php require_once "XML/RPC.php"; // 貴方のブログのタイトル $title ="Enayaの杜"; // 貴方のブログのURL $topUrl="http://plaza.rakuten.co.jp/enaya/"; // 貴方のブログの更新をチェックするページのURL(おそらくトップページ $chkUrl="http://plaza.rakuten.co.jp/enaya/"; // 貴方のブログのRSSのURL $RSSUrl="http://api.plaza.rakuten.ne.jp/enaya/rss/"; $title = mb_convert_encoding($title, "UTF-8", "auto"); // ping 送信先ホスト名 $pingServer="blogsearch.google.co.jp"; // ping 送信先のパス $pingPath="/ping/RPC2"; $param = array( // 必ずこの順番で new XML_RPC_Value($title,"string"), new XML_RPC_Value($topUrl,"string"), new XML_RPC_Value($chkUrl,"string"), new XML_RPC_Value($RSSUrl,"string") ); $msg = new XML_RPC_Message("weblogUpdates.extendedPing",$param); $client = new XML_RPC_Client($pingPath,$pingServer,80); $response = $client->send($msg); if($response->faultCode()) { exit("失敗しました。"); } else { $results = array_map( 'array_convEnc', XML_RPC_decode( $response->value() ) ); if ( $results['flerror'] ) { exit("失敗しました。"); } else { exit("成功しました。"); } }function array_convEnc($a){ if( is_array($a) ){ return array_map( 'array_convEnc', $a ); } return mb_convert_encoding($a, mb_internal_encoding(), $GLOBALS['XML_RPC_defencoding'] );}?>ご使用は自己責任で。