自動で送信するためには、別サーバーが必要ですのでx10Hosting (Free)を借りました。cPanelも日本語化されてますしFTPクライアントからのアップロードも可能です。
自動でPing送信を実現するには、メール駆動方式とCron方式があります。今回はメール駆動方式にしました。Blogger標準機能で記事投稿時にメール送信する機能がありますが、これを利用します。
cron方式は、下記のスクリプトとブログからはてなブックマークへの自動投稿 を組み合わせたスクリプトを作成するとよいでしょう。
まずはPHPのスクリプトです
#!/usr/bin/php -f
<?php
require_once('XML/RPC.php');
$blogtitle = 'ブログタイトル';
$blogtopurl = 'http://XXXXXXX/'; //ブログトップURL
$blogrssurl = 'http://XXXXX'; //ブログRSSのURL
// ここに更新pingサーバを追加していく
$servers = array(
array(
'server' => 'http://api.my.yahoo.co.jp',
'path' => '/RPC2',
),
array(
'server' => 'http://api.my.yahoo.com',
'path' => '/RPC2',
),
array(
'server' => 'http://blog.goo.ne.jp',
'path' => '/XMLRPC',
),
);
ping_send($blogtitle, $blogtopurl, $servers);
function ping_send($blogtitle, $blogtopurl, $servers){
$param = array(
new XML_RPC_Value($blogtitle,'string'),
new XML_RPC_Value($blogtopurl,'string')
);
$msg = new XML_RPC_Message('weblogUpdates.ping',$param);
foreach($servers as $k => $v){
$client = new XML_RPC_Client($v['path'],$v['server'],80);
$response = $client->send($msg);
if (!$response){
//echo $v['server'].' timeout'."\n\n";
log_write($v['server'].' timeout');
} else if($response->faultCode()){
//echo $v['server'].' failed'."\n\n";
log_write($v['server'].' failed');
} else {
//echo $v['server'].' success'."\n\n";
log_write($v['server'].' success');
}
}
}
function log_write($data){
$time = time() + 9*3600; //GMTとの時差9時間を足す
$time2= gmdate("Y/m/d H:i:s ", $time);
$fp = fopen("log.txt", "a");
fwrite($fp,$time2.":".$data."\n");
fclose($fp);
}
?>
'XML/RPC.php'がインクルードできない場合は、XML_RPCをダウンロードしてライブラリーを設置してください。また、RPC.phpでPEAR.phpがインクルードできないとかの場合は、PEARをダウンロードして設置するかRPC.phpの553行目あたりを以下のように変更することで動作するようになります。
/**
* PEAR Error handling
*
* @return object PEAR_Error object
*/
function raiseError($msg, $code)
{
return $msg."|".$code;
/*
include_once 'PEAR.php';
if (is_object(@$this)) {
return PEAR::raiseError(get_class($this) . ': ' . $msg, $code);
} else {
return PEAR::raiseError('XML_RPC: ' . $msg, $code);
}
*/
}
次にメール受信駆動で起動するPHPの設定です。
管理画面のメールのフォワーダで可能です。また起動したいPHPスクリプトファイルに実行権限を与えないと実行されません。
最後に、Bloggerの[設定]→[メールとモバイル]→[メール通知]のBlogSend アドレスの設定で上記に指定したメールアドレスを設定してください。
【参考にした記事】
・GoogleのBloggerで自動で更新pingを送信する方法
・PHPで更新Pingの送信
・PHPでPing送信する為のいろいろな方法
追記:2011/07/18
x10Hostingですが無料で便利に使えてるのですが、1ヶ月に1回、「Account Panel」と「forums」にログインしないと使えなくなってしまいます。数日過ぎた程度では、PHPなどの実行ができないようになる程度のようです。メールでお知らせが着ますのでそのタイミングで行っても大丈夫です。
x10Hosting Forums: http://x10hosting.com/forums
Account Panel: https://x10hosting.com/control
追記:2011/08/01
FTPからアクセスできなくなりました。
425 Sorry, FTP connections are not allowed from your country of origin.
Cpanel(WEB)からはファイルのアップロードは可能です。
8/5にはFTPできるようになってました。この無料サーバーいつもこんな感じ。
追記:2013/02/21
1か月1回程度、x10Hostingからメールが来て、サービスをアクティブ化?する必要あるが、無料で使用できています。
x10Hostingですが無料で便利に使えてるのですが、1ヶ月に1回、「Account Panel」と「forums」にログインしないと使えなくなってしまいます。数日過ぎた程度では、PHPなどの実行ができないようになる程度のようです。メールでお知らせが着ますのでそのタイミングで行っても大丈夫です。
x10Hosting Forums: http://x10hosting.com/forums
Account Panel: https://x10hosting.com/control
追記:2011/08/01
FTPからアクセスできなくなりました。
425 Sorry, FTP connections are not allowed from your country of origin.
Cpanel(WEB)からはファイルのアップロードは可能です。
8/5にはFTPできるようになってました。この無料サーバーいつもこんな感じ。
追記:2013/02/21
1か月1回程度、x10Hostingからメールが来て、サービスをアクティブ化?する必要あるが、無料で使用できています。
スポンサーリンク
コメントを残す