GoogleAppsScriptでブログ更新をping送信する

はじめに

ブログ更新のping送信(更新通知サービス)は、検索エンジンなどのクローラーにブログの更新を見つけてもらうためのサービスです。現在では、GoogleやBingによって提供されているウェブマスターによってその目的の大部分の必要性はなくなっています。ですが、それ以外のロボットに見つけてもらうためには、必要だと思われます。(ほんとに?)

Bloggerでは、標準でWeblogs.comにだけ送信しています。他には送信されません。なので、GoogleAppsScriptでそれ以外の更新通知サービスに通知します。

ping送信の仕様

次の記事が参考になります。

まとめると、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を好みで変更する

参考