Bloggerのケータイ版を作る(inoccu’s blogのケータイ版が出来ました)

当ブログが使っているBloggerは、海外のサービス(Google提供)のためか、ケータイ版がありません。
日本ではケータイでのネットアクセスが一般的で、主だったブログサービスは、ケータイ版を提供しています。
Bloggerを使っていて、なかなか満足しているわけですが、この点が不満でした。
Bloggerには、トラックバック機能もありません。しかし、これはHaloScanというサードパーティのサービスを使うことで解決しました。
だから、ケータイでのアクセスも、そういうサービスで解決できないか?と、探してみたのですが、見つけることができません。
そこで、自分で作ってみることにしたのです。

当ブログに書いてある記事は、Bloggerのデータベースに保存されています。そして、記事を投稿したりすると、Blog*Spotというサーバスペースに展開されます。Blog*SpotもBloggerが提供しているもので、Bloggerを使っていればデフォルトでBlog*Spotに展開されるのです。(設定すれば、自分で準備したサーバスペースにも展開できます。この辺が、Bloggerの非常に面白いところです。)

ケータイ版を作るにあたって、どうやって記事を取得するか。それが問題です。
これがMovableTypeやWordPress、Nucleusといったインストール型のツールを使っているのであれば、記事は自分の使っているサーバスペースのデータベースに保存されるので、何らかのデータベースプログラミングをすれば、簡単にケータイ版を作ることが出来るでしょう。
Bloggerのデータベースに保存されている記事に直接アクセスするなんて、もちろん出来ません。
しかし、BloggerはGoogle Data APIs(GData)に対応しています。
GDataというのは、大雑把に言うと、Googleが展開している各種サービスにAtom形式でアクセスするAPIです。
GDataを使えば、Bloggerに保存している記事を取得して、ケータイ向けのHTMLとして出力できるのでは?と、思ったわけです。

前振りが長くなりました。
早速、出来上がったケータイ版にアクセスしてみてください。 →http://m.inoue-office.jp/blog.php
なかなか、ちゃんと使えるようになっているではないですか。
3時間くらいで作ったわりには、元からケータイ版を提供しているブログサービスと遜色ないと思います。
コメントやトラックバックには対応していませんけど。(Bloggerが提供しているサービスじゃないし…。)

PHPでGDataを使うために、Zend Frameworkを使用しています。
また、絵文字に対応するために、PHP携帯絵文字自動変換スクリプトも使用しています。

Zend Frameworkを使えば、GDataはかなり簡単です。
Atomのフィードを取得して、そのタイトルを並べたりするくらいなら、すぐ出来ます。

この辺を見ると良いでしょう。
悩んだのは、タイトルのリストを取得した後に、1件の記事を取得するところです。IDもないわけではないので、それで1件の記事を取得するくらい簡単だろうと思ったのですが、そのためのAPIが見つからないのです。
仕方がないので、Zend_GData_QueryクラスのsetStartIndex()で取得したい記事の(フィード上の)順番を指定し、Zend_GDataクラスのgetEntry()で1件を取得するという、涙ぐましいことをやっています。IDでサクッと取れればいいのに…。(自分が見つけられないだけで、実はあるのだろうか?)
もし、ご希望があるようなら、もう少しソースをちゃんとさせて、公開することも考えます。コメントに書いてください。
ただ、あっけにとられるくらい、簡単なプログラムですけど…。

それにしても、やってみれば、いろいろ出来ますね…。
さすがにGoogleが提供しているサービスだけあって、懐が広いです。(クセはあるけど。)

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。2018年、株式会社ビビンコを北九州市に創業。IoTソリューションの開発・導入や、画像認識モデルを活用したアプリの開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。