GoogleAppsScriptでブログ更新をping送信する
はじめに
ブログ更新のping送信(更新通知サービス)は、検索エンジンなどのクローラーにブログの更新を見つけてもらうためのサービスです。現在では、GoogleやBingによって提供されているウェブマスターによってその目的の大部分の必要性はなくなっています。ですが、それ以外のロボットに見つけてもらうためには、必要だと思われます。(ほんとに?)
Bloggerでは、標準でWeblogs.com
にだけ送信しています。他には送信されません。なので、GoogleAppsScriptでそれ以外の更新通知サービスに通知します。
ping送信の仕様
次の記事が参考になります。
- PING送信の仕様 - XMLの書式、RSS配信、PINGサーバとは、ブログ・ホームページ
- ブログ更新ping(weblogUpdates.ping)のxmlrpcの仕様 | infoScoop開発者ブログ
まとめると、XML-RPC
と言う方式でweblogUpdates.ping
形式のリクエストをping送信先に送信すればOKです。
pingを送信する
function pingWeblogUpdates() {
var urls = [
'http://rpc.pingomatic.com/'
,'http://rpc.reader.livedoor.com/ping'
,'http://ping.freeblogranking.com/xmlrpc/'
//,'http://api.my.yahoo.com/RPC2'
,'http://ping.blo.gs/'
//,'http://rpc.weblogs.com/RPC2'
,'http://rpc.pingomatic.com/'
//,'http://xping.pubsub.com/ping/'
//,'http://ping.ask.jp/xmlrpc.m'
];
var data = [];
data.push('<?xml version="1.0"?>');
data.push('<methodCall>');
data.push('<methodName>weblogUpdates.ping</methodName>');
data.push('<params>');
data.push('<param><value>バグ取りの日々</value></param>');
data.push('<param><value>https://www.bugbugnow.net/</value></param>');
data.push('</params>');
data.push('</methodCall>');
var options = {
method: "POST",
payload: data.join('\n')
//,muteHttpExceptions: true
};
//var res = UrlFetchApp.fetch(urls[0], options);
//Logger.log(res.getContentText());
for (var i=0; i<urls.length; i++) {
UrlFetchApp.fetch(urls[i], options);
}
};
※タイトル・URLを変更する
※送信先のURLを好みで変更する