Pipeで使えるWeb検索:Google AJAX Search API
Googleの検索結果をAPIから取得できる。元々JavaScript向けのAPIだったが、それ以外でも使えるようになった。Google Web Search API Class Referenceの下の方にあるFlash and other Non-Javascript Environmentsに細かい仕様は書いてある。基本となるURLは下記。これにパラメーターを付け足していく。☆は必須のパラメーター。
リファレンスにはhttpsって書いてあるけどYahoo Pipesはhttpsをサポートしていない。
☆q | 検索ワード。「site:」なんかの特殊な検索条件もここ。 |
☆v | プロトコルバージョン。現時点では1.0固定 |
userip | APIへのアクセス過多でGoogleから怒られたらこれくっつけとくと良いらしい。 |
rsz | 検索結果の取得数。smallと入れたら4件、largeと入れたら8件取得する。1から8までの数字を入れても良い。Custom Search Engines用に10件まで取得できるfiltered_cseという値が用意されているがPipeから普通に使える。つまりPipeからは10件まで取得できる。デフォルトではsmall。 |
hl | インターフェースの言語。検索する文書の言語では無い。Pipeから使うときに何か関係あるかは不明。デフォルトではen。 |
key | 色々なサイトを見るとAPIkeyの取得が必須みたいな事を書いてあるが、別に無くても良い。リファレンスにもkeyを付けるのがベストだけど別に無くても使えるよとはっきり書いてある。APIが公開された当初は必須だったんだろう。 |
start | 検索結果の何件目から取得するかを決める。1件目は1では無く0。 |
callback | 要するにコールバックらしい。Pipeから使う分にはたぶんなんの関係も無い。 |
context | コールバックに関連して云々と書いてある。これもたぶん気にしなくていい。 |
cx | Custom Search EngineのユニークIDらしい。あんまり関係なさそう。 |
cref | linked Custom Search Engine関連のフラグらしい。あんまり関係なさそう。 |
safe | ぐぐるさんのSafe Searchフラグ。active、moderate、offの3つ。デフォルトではmoderate。 |
lr | 検索する文書の言語。ここに入力値の一覧がある。日本語はlang_ja。 |
filter | 類似ページのフィルタフラグ。0:フィルタしない、1:フィルタする。デフォルトでは1。 |
gl | 国別コード。jpとか入る。一覧はここ。lrとの違いがいまいち分かりにくいが、あっちは検索する文書に使われている言語。日本はjp。 |
サンプルは下記。Fetch Dataを使うといい。検索結果はresponseData.results以下にある。
http://ajax.googleapis.com/ajax/services/search/web?v=1.0&rsz=filtered_cse&q=test&lr=lang_ja&gl=jp
結果が10件までというのが少ないが、startを10に設定して再びFetch Dataすればいい。
Pipeに組み込むに当たって問題が無い訳じゃ無い。Loopで使うと検索結果がおかしい。たぶんUrl Builderと一緒で2バイト文字が無視されてる感じ。
y:repeatcount
Unique Moduleで重複処理するとy:repeatcountという項目が追加される。重複itemがないと1、あるとitem数が格納される。
pubDateでfilter
itemをpubDateでfilterすることも出来る。長い間気づかなかった。
ITMediaみたいにfeed内に数ヶ月前のitemがあることも珍しくない。過去の日時の表現は色々あるけど、これが一番分かりやすいと思う。Truncateとか使ってitem数削るくらいならこっちの方が良い。
カレンダーサイト&ソフト比較
YahooPipesまとめサイトなんだからそれを中心に比較。どうせカレンダーしか使わないので、Zohoのようなグループウェア寄りのものは除外。ポイントは2つ。
- オンラインカレンダーの購読が問題なく出来るか
- CalDAVに対応しているか
Google Calendar
- オンラインカレンダーの購読は可能だが、文字コードのせいでPipeで作成したカレンダーは2バイト文字が文字化けする
- CalDAVに対応。CalDAVのアドレスは下記。
- 表示は日週月のオーソドックスなものとカスタムビュー。カスタムビューは設定で2日〜4週まで変えられる。
https://www.google.com/calendar/dav/Calendar ID/events
Calendar IDというのはカレンダーの詳細開くと書いてある。@以下も全部入力する事。
Yahoo Calendar
- オンラインカレンダーの購読は可能
- CalDAVに対応。CalDAVのアドレスは下記。
- 表示は日週月年の4つのみ。
https://caldav.calendar.yahoo.com/dav/Username/Calendar/Calendar Name
Calendar Nameは2バイト文字でも問題ない。
Yahoo カレンダー
- オンラインカレンダーの購読不可。当然CalDAVなんか問題外。
Windows Live カレンダー
- オンラインカレンダーの購読が出来る。しかし、VEVENT内にUIDを設定する必要がある様子。値自体は予定毎にユニークな物であれば何でも良い。
- CalDAVには未対応
- カレンダーのインポートは出来るが、エクスポートが何処にも見あたらない。
- 表示は日週月のオーソドックスなものと、今日を起点とした7日表示に今週を起点とした4週表示の5つ。
Thunderbird+Lightning
- オンラインカレンダーの購読が出来る。
- CalDAVに対応。
- 日週月と多週表示の計4つ。多週表示は表示する週の総数と表示する前週の数が設定できる。前週+今週の2週でもよし、前週+今週+来週の3週表示でもよし。
- ThunderbirdというメーラーにLightningというカレンダーソフトをくっつける形になるためやはり重い。ちょっと起動が重いかななんてレベルじゃない。ただ起動してからの動作自体はLightning0.9の頃は酷かったが、1.0になって劇的に改善された。
- オンラインカレンダーの件数が多くなるとデータの欠落がたまに生じる様子。大事な予定にはとてもじゃないが使えない。
総評
- YahooPipes使いとしては文字化けが発生するGoogle Calendarは問題外。カスタムビューは魅力的だけど。
- 1月分の予定なんか一覧できる必要はない。かといって1週ではちょっと少ない。2週くらいで十分。というわけでWindows LiveとYahoo Calendarも問題外とまでは言わないがもう一息。
- Lightningの多週表示が便利。ローカルアプリだからバックアップの必要性があるが、CalDAV経由でGoogle CalendarかYahoo Calendarをデータ置き場にしてしまえばいい。問題はやはり起動の重さ。Webベースのものと違ってお手軽感皆無。
なんかYahooカレンダーの使え無さっぷりが際立つ結果になったが、まあしょうがない。