2007.11.25 · 技術と道具

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が提供しているサービスだけあって、懐が広いです。(クセはあるけど。)

2007/11/25 11:38
← プロフェッショナル原論
どういうプロジェクトに工事進行基準が適用されるのか →
井上 研一
経済産業省推進資格ITコーディネータとして中小企業のDX・AI活用の現場で伴走支援を行う。「ITCプロセスガイドライン4.0」および「中小企業向けAI活用ガイド」執筆メンバー。著書・講演多数。ITエンジニアとして25年以上の実務経験。AI導入の実務に10年以上携わる。自ら開発したAIサービス「Gen2Go」が北九州発!新商品創出事業の認定を受ける。2026年4月より北九州市立大学大学院マネジメント研究科の学生としての顔も持つ。

本サイトおよびブログに掲載している内容は、特に明記のない限り、井上研一個人の見解に基づくものです。所属・関与する組織、団体、企業、研究会等の公式見解を示すものではありません。