>--> 2009-08 | クリボウの Blogger Tips

クリボウの Blogger Tips

Google Blogger の使い方、カスタマイズ方法、各種ツールなど、
Blogger 関連の役立つ情報を紹介しています。

Home > 2009-08

2009-08

Blogger 公式のラベルクラウドが登場

以前このブログでラベルクラウドの導入方法について記事を書きました。

ここで紹介した方法は Blogger ユーザーが独自に考え出したものだったんですが、Blogger Buzz で今回、Blogger 標準のラベルガジェットでも公式の「ラベルクラウド」が表示できるようになったとアナウンスがありました。

ためしに「写真日記」にとりつけてみたのが、こちら。

「クリボウの写真日記」のラベルクラウド

少しごちゃごちゃとはしていますが、件数の多いラベルが一目瞭然でいい感じです。早速、導入方法を見て行きます。

1.「ラベルガジェット」の編集画面を開きます。Blogger 管理画面「レイアウト > ページ要素」ページでラベルガジェットの「編集」リンクをクリックします。(ラベルガジェットを利用していない人は、「ガジェットを追加」を押して、出てきたがジェット選択画面から「ラベルガジェット」をクリックします。)

ラベルガジェットの編集

2.ガジェットの編集画面に選択肢が増えています。まず「表示」。すべてのラベルを表示するか、選択したラベルを表示するかを指定できます。選択ラベルだけ表示できるという機能は今回追加されました。「並べかえ」は前からありましたね。ラベル名を何順で表示するかです。二つ目の「表示」では、従来のリスト形式と新しく追加されたラベルクラウド形式とを選択できるようになっています。ここで「クラウド」を選択して「保存」ボタンを押します。

ラベルガジェットの設定はこれだけ。HTML コードや Blogger レイアウト用コード、CSS コードと格闘していたころとは大違いで、簡単に導入できますね。興味があったけれど踏み出せずにいたという人は、この機会にぜひどうぞ。

ちなみに前回の PubSubHubbub 対応も、今回のレベルクラウド登場も Blogger の 10 周年を記念した機能追加のようです。Blogger の誕生日は 8 月 23 日。もう過ぎてしまいましたがまだまだ 10 周年の新機能は追加されていく模様です。

Blogger が PubSubHubbub に対応

Label: 3

Blogger が PubSubHubbub に対応しました。

PubSubHubbub というのは、ブログの更新を伝えるための新しいプロトコル。Google の社員が開発しました。従来までは、フィードリーダーが定期的にフィードをクロールして、ブログの更新が確認でき次第、ようやくフィードリーダーでも情報が更新されていたんですが、このプロトコルを使うと、「Hub」という仲介者を通じて、直接フィードリーダーが更新された情報を受け取れるようになります。ブログの運営者からすると、フィードへの過剰なアクセスが減り、ブログの更新もすぐさまフィードリーダーに掲載されるということになりますね。

このプロトコルには、現在 Google Reader や livedoor Reader が対応しています。ブログサービス側の Blogger が今回これに対応したので、これらのフィードリーダー上では、Blogger ブログの更新がほぼリアルタイムで表示されるようになる…はずです。

このプロトコルに対応するフィードリーダーが、もっともっと増えるといいですね。PubSubHubbub についてさらに知りたい人には、以下の記事がわかりやすいと思います。

Twitter の一日のつぶやきをまとめてブログに投稿してくれる twtr2src

今回は、前回の記事「ブログの更新情報を Twitter に流してくれる Twitterfeed」とは逆の、「Twitter から Blogger へ」というパターンをご紹介。

twtr2src

twtr2src は、Twitter の一日のつぶやきをまとめてメールで送ってくれるサービスです。登録すると、毎日午前 0 時に前日の Twitter のつぶやきが指定したアドレスに送られてきます。これをブログのメール投稿サービス(Blogger の場合 Mail2Blogger)とつなげると、ブログに毎日自動的に Twitter のつぶやきが投稿されていくようになります。

Twtr2src Test on Blogger

この twtr2src は OAuth に対応しているので、Twitter ユーザーなら特別なアカウントを作らなくても利用することができます。それでは、早速利用方法を。


1.まず、Blogger ブログのメール投稿を有効にします。Blogger のブログ管理画面「設定 > メールとモバイル」ページの「メールによる投稿アドレス」に好きな英数字を入れて、誰にも公開しないブログ投稿用メールアドレスを作成します。このアドレスはメモしておいてください。公開の設定は「メールを投稿の下書きとして保存します」を選択して「設定を保存」ボタンを押します。

Mail2Blogger

2.twtr2src サイトを開き、ログインします。「Sign in with Twitter」リンクをクリックすると Twitter の OAuth 確認画面に移るので、「Allow」ボタンを押してください。

3.すでに Twitter のつぶやきが並んでいると思います。そこから「Settings」リンクをクリックすると、下の画像のような画面になります。下のオプション説明を参考にして設定した後、「Save」ボタンを押してください。

twtr2src Settings

  • Sorting order of timeline … Twitter のつぶやきを時刻で降順で並べるか、昇順で並べるか。「Night to morning(デフォルト)」だと新しいつぶやきから順に並び、「Morning to night」だと古いものから。
  • Title format … メールの件名のフォーマット。Blogger に送信時、このメールの件名がそのまま投稿のタイトルになる。デフォルトは「%a, %b %d」。ここで指定することのできる「%なんとか」という文字列は ここで確認。
4.次に、Blogger との連携させるために「Auto posting」タブに移ります。1の Mail2Blogger に指定したメールアドレスを入力して、「Send mail」ボタンを押します。メールが送られるとメールアドレスの横に「OK」と文字が出ます。

twtr2src Auto Posting Settings

5.ここまでの設定がうまくいっていれば、ブログに twtr2src の確認用メールが届いているはずです。ブラウザの別画面で Blogger のブログ管理画面「投稿 > 投稿を編集」を開き、「Confirmation number」という投稿の本文からその数値を確認します。

Blogger Dashboard

6.twtr2src に戻り、5で確認した数値を入力して「Submit」ボタンを押します。数値が合っていれば右に「OK」という文字が出ます。

twtr2src Auto Posting Settings

7.その後、メールの自動投稿の設定をします。下の説明を参考にして設定した後、「Save」ボタンを押してください。

twtr2src Auto Posting Settings

  • Auto posting … メールの自動投稿を行うかどうか。「ON」にすると、毎日午前 0 時に自動的にメールが送られる。「Send a mail now」でテスト後「ON」に設定するのが吉。
  • Format … メールの形式。Blogger は「HTML」もしくは「Plain Text」を指定。「HTML」だとこんな感じ、「Plain Text」だとこんな感じ
  • Time zone … メールのタイムゾーン。日本なら「GMT+09:00」のままで。
  • Send a mail now … メール送信のテスト。存在する最終日の Twitter のつぶやきを送信。Format を変更した場合には、先に「Save」ボタンを押して設定を反映させてから、メールを送ること。
8.最後に、メールを受け取ったときに Blogger 側で投稿を自動公開するように設定します。ブログ管理画面「設定 > メールとモバイル」ページ「メールによる投稿アドレス」の公開設定で、「今すぐメールを公開します」を選択して「設定を保存」ボタンを押します。(画像は1と同じなので省略。)


書き出してみると意外と長かったんですが、実際の作業はすぐに終わります。Twitter のつぶやきをブログにまとめたいという人はぜひお試し下さい。

ちなみに、前回ご紹介した Twitterfeed とこのサービスを一緒に利用すると、ループが発生して Twitter やブログを更新していなくても、Twitter つぶやき → Blogger でつぶやきのまとめ投稿 → Twitter にブログの更新情報 → Blogger でつぶやきのまとめ投稿…と毎日両方が更新されてしまうような気がします。

Twitterfeed と twtr2src を一緒に使いたい場合には、twtr2src のメールタイトルを編集し、Twitterfeed でそのタイトルに対するフィルターを設定するというのがいいかも知れません(未実験)。

ブログの更新情報を Twitter に流してくれる Twitterfeed

もうご存知の方も多いと思うんですが、Blogger Buzz で取り上げられていたので、ご紹介。

twitterfeed

Twitterfeed はブログの更新情報を Twitter に流してくれる便利なツール。ブログに記事を投稿するたびに自動的に Twitter でつぶやいてくれます。

Kuribo's Twitter

Twitterfeed は OpenID に対応しているので、Blogger ユーザーならアカウントを作らなくてもブログのドメインを入力するだけで、設定を開始することができます。それでは早速導入方法を。

1.まず Twitterfeed サイト を訪れて、ログインします。「Login」ボタンの下の「Sign In with OpenID」リンクをクリックして、「Blogger」のボタンを押し、Blogger ブログの URL を記入したのち「Sign In」。Blogger の OpenID 確認画面が出るので、「はい。一回のみ」「はい。常に」のどちらかのボタンを押します。

OpenID Log In to Blogger

2.twitterfeed の設定画面が出ます。「Connect your feed to your Twitter Account」ボタンを押して、自分の Twitter アカウントと関連づけます。Twitter の OAuth 確認画面が出るので、「Allow」ボタンを押します。

twitterfeed Settings 1

3.「Step 2」の欄が入力可能になります。「Feed Name」にブログ名を入れ、「RSS Feed URL」にブログのフィードの URL(http://EXAMPLE.blogspot.com/feeds/posts/default のような)を入力します。RSS とありますが、Blogger の Atom フィードでも問題ありません。「test rss feed」ボタンを押して「Feed parsed OK」と出れば大丈夫です。

twitterfeed Settings 2

4.最後に「Create Feed」ボタンを押すと設定完了。…なんですが、詳細設定もできるので最初にしておいたほうがいいかも。「Advanced Settings」リンクを押すと下に入力欄がのびてきます。ここで好きな設定をしてください。

twitterfeed Advanced Settings

設定できる項目は次のとおり。

  • Update Frequency … Twitterfeed の更新頻度。30 分、1 時間、2 時間、3 時間、6 時間、12 時間、24 時間から選択可。デフォルトは 1 時間。
  • post up to [NUMBER] new update(s) at a time. … ひとつの Twitter つぶやきに含める投稿数。1 ~ 5 が選択可。デフォルトは 1。
  • Post Content … つぶやきに含める投稿の要素。「タイトルと本文」「タイトルのみ」「本文のみ」が選択可。デフォルトは「タイトルと本文」
  • Post Link … ブログの投稿へのリンクを張るかどうかのチェックボックス。張る場合は、URL 短縮サービスも選択。20 種類ほどから選べるが、Twitter 標準の「bit.ly」のままが無難。
  • Post Sorting … ポストの順序の基準を何にするか。「公開日」と「投稿 ID」から選択可。デフォルトは「公開日」。
  • Post Prefix … つぶやきで投稿情報の前に表示する文字列。デフォルトはなし。
  • Post Suffix … つぶやきで投稿情報の後に表示する文字列。デフォルトはなし。
  • Keyword Filter … 投稿を Twitter に載せるための承認用キーワード。デフォルトはなし。
ということで Blogger & Twitter なユーザーはぜひぜひどうぞ。

Google Reader に「Send to Blogger」機能

Posted at: 2009-08-14 Label: 5

で知った Google Reader の新機能。

Send to Blogger on Google Reader

画像のように、Google Reader で閲覧している記事の末尾に「Send to」リンクが表示されます。リンクをクリックし「Blogger」を選ぶと、Blogger の「BlogThis!」ページが表示されて、見ていた記事の内容が入力欄に記入されます。他人の記事に刺激を受けたその場で、Blogger の投稿画面が開けるのがいいですね。

この「Send To」機能、今のところ Google Reader の表示言語を英語にしておかないと有効にできないようです。機能を有効にするには…

Send to Blogger on Google Reader

1.Google Reader を開き「設定 > 各種設定」画面の「言語」を「英語 - English」にします。
2.再び「Settings(設定)」から「Send To」タブを開いて、「Blogger」のチェックボックスにチェックを入れます。

これでおしまいです。「設定を保存」なんかのボタンもありません。Google Reader を使っている人はぜひ一度お試しください。

日本語で質問・回答ができる Blogger 公式ヘルプフォーラム

Blogger について、日本語で質問・回答できるフォーラムというと、

なんかがクリボウの頭にはまず浮かんでくるんですが、Blogger 公式にも日本語フォーラムが用意されていたことに、今日になってようやく気づきました。それがこちら(英語で表示される場合は URL 末尾に ?hl=ja を追加)。

質問や回答をするには「Google ヘルプフォーラム」への登録が必要なようです。登録すると Blogger ヘルプフォーラムだけでなく、全ての Google ヘルプフォーラムで質問や回答が行えるようになります。ここでした質問や回答には、それぞれユーザーの Google プロフィールへのリンクが表示されます。

クリボウも早速登録して、(公開用 Google プロフィールも急いで編集して、)わかる範囲で 8 件くらい回答しました。このブログで紹介してこなかった情報なんかもあるかも。

ヘルプフォーラムでは、Blogger のコメント投稿欄と同様に、自分の回答後に別のユーザーが回答した場合に通知メールを送ってもらうオプションも選択できます。また、メール以外でも全質問と、質問ごとのフィードが公開されているので、フィードリーダーで情報を追いかけていくことも可能です。

フォーラムのユーザーにはレベルがあって、質問や回答でポイントをためるとレベルが上がっていくようです。あんまりよく分からないんですが、発言を活発にするための仕組みなんでしょうか。

と、目に付いた機能面はそんなところですが、気になるのがこのフォーラムがいつ開設されたかという点。「そういえば」と自分の書いた記事(2009-02-15)を見返してみると、

の掲載画像にもしっかり「Help Forum」の文字が出ていました…(汗)。英語版は Blogger Help Group と項目名が同じなので、全く一緒のものだと思って見落としていたんでしょうね。

…ということで、あまり注目されてこなかった(と思われる)この Blogger ヘルプフォーラムなんですが、これからどんどん日本の Blogger ユーザーで交流していけたらいいですね。

Blogger で「関連記事」リストを表示する 2 つの方法

Posted at: 2009-08-04 Label: , 18

ブログの投稿の最後に、その投稿に関連する投稿のリストを表示する方法です。
今回参考にさせてもらったのは、

の 2 ブログ。
Blogger カスタマイズサイトがいくつも出てきて、脅威を感じているところです(汗)。


ラベルごとの関連記事

最初は

で紹介されている方法。
写真日記にとりつけてみたところ、下の画像のようになりました。



記事単独のページにラベルごとに数件のリンクを表示します。
上の例では、この下に「Nikon D80」ラベル、「昆虫」ラベル、「蝉」ラベルの投稿へのリンクが表示されました。
ラベルやラベルごとのリンク数は、ユーザーが指定することが可能です。

導入方法

1.Blogger 管理画面「レイアウト > HTML の編集」ページで「ウィジェットのテンプレートを展開」にチェックを入れます。

2.テンプレートのテキストエリアから、
<b:includable id='main' var='top'>
を見つけ出し、その前の行に
<b:includable id='related-posts' var='posts'>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div class='similiar'>
<div class='widget-content'>
<h3>Related Post:</h3>
<div id='data2007'/><br/>
   <script type='text/javascript'>

   var homeUrl3 = &quot;<data:blog.homepageUrl/>&quot;;
   var maxNumberOfPostsPerLabel = 6;
   var maxNumberOfLabels = 3;

   function listEntries10(json) {
   var ul = document.createElement(&#39;ul&#39;);
   var maxPosts = (json.feed.entry.length &lt;= maxNumberOfPostsPerLabel) ? 
                 json.feed.entry.length : maxNumberOfPostsPerLabel;
   for (var i = 0; i &lt; maxPosts; i++) {
   var entry = json.feed.entry[i];
   var alturl;

       for (var k = 0; k &lt; entry.link.length; k++) {
         if (entry.link[k].rel == &#39;alternate&#39;) {
           alturl = entry.link[k].href;
           break;
         }
       }
       var li = document.createElement(&#39;li&#39;);
       var a = document.createElement(&#39;a&#39;);
       a.href = alturl;

if(a.href!=location.href) {
   var txt = document.createTextNode(entry.title.$t); 
   a.appendChild(txt);
   li.appendChild(a);
   ul.appendChild(li); 
}
   }
     for (var l = 0; l &lt; json.feed.link.length; l++) {
       if (json.feed.link[l].rel == &#39;alternate&#39;) {
         var raw = json.feed.link[l].href;
         var label = decodeURIComponent(raw.substr(homeUrl3.length+13));
         var txt = document.createTextNode(label);
         var h = document.createElement(&#39;b&#39;);
         h.appendChild(txt);
         var div1 = document.createElement(&#39;div&#39;);
          div1.appendChild(h);
         div1.appendChild(ul);
         document.getElementById(&#39;data2007&#39;).appendChild(div1);
       }
     }
   }
   function search10(query, label) {

   var script = document.createElement(&#39;script&#39;);
   script.setAttribute(&#39;src&#39;, query + &#39;feeds/posts/default/-/&#39;
    + label +
    &#39;?alt=json-in-script&amp;callback=listEntries10&#39;);
   script.setAttribute(&#39;type&#39;, &#39;text/javascript&#39;);
   document.documentElement.firstChild.appendChild(script);
   }

   var labelArray = new Array();
   var numLabel = 0;

   <b:loop values='data:posts' var='post'>
     <b:loop values='data:post.labels' var='label'>
       textLabel = &quot;<data:label.name/>&quot;;
     
       var test = 0;
       for (var i = 0; i &lt; labelArray.length; i++)
       if (labelArray[i] == textLabel) test = 1;
       if (test == 0) { 
          labelArray.push(textLabel);
          var maxLabels = (labelArray.length &lt;= maxNumberOfLabels) ? 
                 labelArray.length : maxNumberOfLabels;
           if (numLabel &lt; maxLabels) {
             search10(homeUrl3, textLabel);
             numLabel++;
          }
       }
     </b:loop>
   </b:loop>
   </script>
</div>
</div>
</b:if>
</b:includable>
というコードを貼り付けます。コードを見つけるのにはブラウザの検索機能が便利です。赤字の部分は、上からタイトル、ラベルごとの投稿リンク数、表示ラベル数を表していて、ユーザーで変更が可能です。

3.次に、テキストエリアから
<div style='clear: both;'/> <!-- clear for photos floats -->
というコードを見つけ出し、その次の行に
<b:include data='posts' name='related-posts'/>
を挿入します。

これでおしまい。ちなみに

ラベルが日本語だと下の画像のようになり、正常に表示されません。
但し、最大の問題は日本語のラベルが文字化けすること。

という問題があったため、日本語ラベル名の URL エンコードをデコードするよう、コードを修正しています(青字部分)。なので、ブログの投稿に日本語ラベルをたくさんつけていても大丈夫。


3行コピペでできる方法

2つめは、

で紹介されている方法。
本家のプロジェクトページはこちらです。

それを写真日記にとりつけてみたのがこの画像です。



重複するラベルの多い順にリンクを並べているようで、元の投稿「蝉の抜け殻」に対して、かなり正確な関連記事が表示されています。

導入

1.Blogger 管理画面「レイアウト > HTML の編集」ページで「ウィジェットのテンプレートを展開」にチェックを入れます。

2.テンプレートのテキストエリアから、
<div style='clear: both;'/> <!-- clear for photos floats -->
を見つけ出し、その次の行に
<div id='related_posts'/>
というコードを挿入します。コードを見つけるのはやっぱりブラウザの検索機能で。

3.次にテキストエリアの最後の方から、
</body>
</html>
というコードを見つけ、その前の行に
<script type='text/javascript' src='http://www.google.com/jsapi' />
<script type='text/javascript' src='http://brps.appspot.com/brps.js' />
というコードを貼り付けます。

これでおしまい。簡単です。

またオプションとして、タイトルと投稿リンクの表示数を指定することもできます(標準は「Related Posts」で 10 件)。
その場合は、3で貼り付けるコードを
<script type='text/javascript' src='http://www.google.com/jsapi' />
<script type='text/javascript'>
window.brps_options = {"title": "<h3>関連記事</h3>", "max_results": 5}
</script>
<script type='text/javascript' src='http://brps.appspot.com/brps.js' />
という風に、書き換えてください。

Blogger のカスタムドメイン「リダイレクト」機能に不具合

Posted at: 2009-08-01 Label: 1

はてな人力検索にこのような質問が上がっていました。

GoogleのブログサービスBloggerで、カスタムドメインでブログを公開しています。
ドメインを「さくらインターネット」で取得し、Bloggerの設定で、カスタムドメイン「www.xxxx.com」で公開するよう設定しています。実際、「www.xxxx.com」でアクセスすることはできます。

しかし、同じ設定画面で、「xxxx.comをwww.xxxx.comにリダイレクトする」にチェックを入れています。私はこの設定を、「アドレスバーに「xxxx.com」と入力した場合でも www.xxxx.com にアクセスできるようにする設定」と理解しているのですが、実際に「xxxx.com」にアクセスすると、「ページが見つかりません」というメッセージが出ます。

ブラウザのアドレスバーに「xxxx.com」と入力した場合にも私のブログが表示されるようにするには、どうすればよいのでしょうか?

回答しようと文章を打ったところで、回答受け付けが締め切られていることに気づいたので、こちらに公開しておくことにします。

私はこの設定を、「アドレスバーに「xxxx.com」と入力した場合でも www.xxxx.com にアクセスできるようにする設定」と理解しているのですが、

カスタムドメインのリダイレクト機能については、この理解で合っていると思いますが、この機能は現在一部ユーザーに対して機能していないようです。 この不具合は、Blogger 公式ブログ「Known Issue for Blogger」でも報告されています。

The custom domain redirect setting is currently not functional for some users. We are working on a fix and hope to have it resolved shortly. We appreciate your patience.

この問題について、Blogger の公式の解決策は示されていません。が、自力で解決したユーザーもいるようです。それによると、

IPアドレスを検索すると
「ghs.google.com」は「74.125.47.121」らしいので、
Aレコードを上記のIPアドレスで設定したら、
リダイレクトされました。

とのことです。
IP アドレスのことなので、今後変更になる可能性もあるんですが、問題に悩んでいる人は一度試してみるとよさそうです。

© 2005-2014 Kuribo. Powered by Blogger.