Hebikuzure's Tech Memo

2010年9月23日

アクセラレータを作る

Filed under: Windows Tips — hebikuzure @ 6:25 AM

先日の記事で Internet Explorer のアクセラレータをインストールさせる方法について試ししたので、ついでにアクセラレータの作成も試してみた。アクセラレータの作り方についても OpenService アクセラレータ開発者向けガイドに記載されているので、それに従えばよい。今回は「あのひと検索 SPYSEE [スパイシー]」で人物検索するアクセラレータを作ってみた。こうした検索アクセラレータを作るには、以下の情報を集めればよさそうだ。

  • 検索キーワードが Web サイトに渡される方法 (GET / POST のメソッド、渡されるパラメーターなど)
  • Favicon の URL (メニューに表示されるアイコン)

まず SPYSEE のサイトで検索した場合、検索キーワードがどのように Web サイトに渡されるのかを実際に検索して確認してみる。

このように検索キーワードは “http://spysee.jp/q/” にそのまま渡されるようなので、実際に “http://spysee.jp/q/蛇崩川るね” を直接アドレスバーに入力してアクセスすると上のスクリーンショットと同じページが表示された。Referer をチェックして外部からのアクセスを制限しているような動作はなさそうなので、このまま利用できそうだ。

次に Favicon の URL だが、SPYSEE のトップページのソースに以下のように指定されていた。

<link href="/_img/favicon.ico" rel="shortcut icon"/>

トップページの URL が “http://spysee.jp/” なので、Favicon の URL は “http://spysee.jp/_img/favicon.ico” であることがわかる。

これらの情報をアクセラレータの実態である XML ファイルに記述していけば「SPYSEE 人物検索アクセラレータ」ができあがる。OpenService アクセラレータ開発者向けガイド に次のようなサンプルが載っているので、これを書き換えて利用する事にする。

<?xml version="1.0" encoding="UTF-8"?> <os:openServiceDescription xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0"> <os:homepageUrl>http://maps.example.com</os:homepageUrl> <os:display> <os:name>Map with MyMap</os:name> <os:icon>http://www.example.com/favicon.ico</os:icon> <os:description>Map addresses easily with MyMap.</os:description> </os:display> <os:activity category="Map"> <os:activityAction context="selection"> <os:preview action="http://maps.example.com/preview.php?addr={selection}" /> <os:execute action="http://maps.example.com/" method="get"> <os:parameter name="addr" value="{selection}" type="text" /> </os:execute> </os:activityAction> </os:activity> </os:openServiceDescription> 

os:homepageUrl にはサイトのトップページを指定する。
os:display の os:name にはアクセラレータ名を、os:icon には Favicen の URL を、os:description にはメニューへの表示名を指定する。
os:activity の category 属性でアクセラレータのカテゴリーを指定する。ここでは “whoswho” というカテゴリーにした。
os:activity の os:execute に実行する検索アクションを記述する。(os:preview はプレビューを表示する場合に指定する。ここではプレビューはできないので指定しない)
この辺りの各属性、要素の意味と指定方法は OpenService アクセラレータ開発者向けガイド に解説されている。

先に確認した情報を元にこのサンプルを以下のように書き換えて、spysee.xml として保存した。

<?xml version="1.0" encoding="UTF-8"?> <os:openServiceDescription xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0"> <os:homepageUrl>http://spysee.jp/</os:homepageUrl> <os:display> <os:name>SPYSEE で人物検索</os:name> <os:icon>http://spysee.jp/_img/favicon.ico</os:icon> <os:description>SPYSEE で人物検索</os:description> </os:display> <os:activity category="whoswho"> <os:activityAction context="selection"> <os:execute action="http://spysee.jp/q/{selection}" method="get"> </os:execute> </os:activityAction> </os:activity> </os:openServiceDescription>

あとは先日の記事と同様に、インストール元となる Web ページに JavaScript で window.external.AddService メソッドでアクセラレータをインストールさせるボタンを作ってやればよい。

実際に作成したアクセラレータを IE8 と Firefox にインストールして動作する事を確認した。(上が IE、下が Firefox)

実際には検索などのアクションを行う側の Web サイト (Web サービス) を作り込み、それに対応したアクセラレータを配布するというのがより実用的で効率的な活用方法だろうが、よく使う検索系のサイトでいちいちページを開くのが面倒と思うなら、今回のようにアクセラレータを自作するのも一つの手ではある。

参考情報
SPYSEE をアクセラレータから使うなら、5W1H Mextractr というアクセラレータが便利かもしれない。

広告

コメントする »

まだコメントはありません。

RSS feed for comments on this post. TrackBack URI

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

WordPress.com Blog.

%d人のブロガーが「いいね」をつけました。