2010年11月27日土曜日

Google API について調べてみた

Google API って、いろいろとあるな~と気づいた今日この頃です。

どんなものか気になります。

ということで、、調べてみました。

大したことは調べてませんが、気になったところを整理します。

  1. android でどうあつかうか?

    処理の要求は、HTTPのGETリクエスト。
    応答のフォーマットは JSON(ジェイソン、JavaScript Object Notation)。
    JSON フォーマットは、org.json.JSONObject.JSONObject で解析可能。


  2. JSONって何?

    <キー>:<値>のペアをカンマ区切りで列記する形式。
    JavaScript のハッシュ記法と同じ。
    これは、JSON の名前の通り、元々は JavaScript で、そのまま利用することを想定しているため。
    値をタグで挟む(ことが多い) XML よりは記述量が少なくなる傾向がある。


  3. 要求/応答のサンプルを見せてくれ。

    Blog Search API を使った例。
    高知城に関するブログを検索する。

    ブラウザで以下の URL を入力する。

    Blog Search - 検索
    https://ajax.googleapis.com/ajax/services/search/blogs?v=1.0&q=%E9%AB%98%E7%9F%A5%E5%9F%8E

    "v=1.0" はバージョン。

    "q=%E9%AB%98%E7%9F%A5%E5%9F%8E" は検索条件。

    %E9%AB%98%E7%9F%A5%E5%9F%8E は 高知城 を JavaScript の encodeURIComponent() と同等の方式でエンコードした値。
    android の場合、android.net.Uri.encode() でエンコードすればよい。


    上記 HTTP リクエストに対する応答は以下の通り。

    Blog Search - 応答
    {"responseData": {"results":[{"GsearchResultClass":"GblogSearch","title":"\u003cb\u003e高知城\u003c/b\u003e: 青春18切符で行く,日本の「城」巡り","titleNoFormatting":"高知城: 青春18切符で行く,日本の「城」巡り","postUrl":"http://oojijisun.seesaa.net/article/170228621.html","content":"\u003cb\u003e高知城\u003c/b\u003e,現存天守閣のある12城から始め、国内の100名城を鑑賞します。日本の歴史、建築土木技術を語る旅です。春休み、夏休み、冬休み、にカメラを持って行きます。","author":"oojijisun","blogUrl":"http://oojijisun.seesaa.net/","publishedDate":"Sun, 21 Nov 2010 14:45:09 -0800"},{"GsearchResultClass":"GblogSearch","title":"12月の日程予定 - \u003cb\u003e高知城\u003c/b\u003eサッカークラブ情報ブログ","titleNoFormatting":"12月の日程予定 - 高知城サッカークラブ情報ブログ","postUrl":"http://blog.goo.ne.jp/kochijyo-sc/e/8267635293edf7372e58db52ba4917f4","content":"1991年結成 \u003cb\u003e高知\u003c/b\u003e県\u003cb\u003e高知\u003c/b\u003e市で活動する壮年サッカーチームの情報交換広場です.","author":"kochijyo-sc","blogUrl":"http://blog.goo.ne.jp/kochijyo-sc/","publishedDate":"Wed, 24 Nov 2010 01:07:38 -0800"},{"GsearchResultClass":"GblogSearch","title":"山内一豊と千代さんの夫婦愛の結晶 \u003cb\u003e高知城\u003c/b\u003eを歩こう!","titleNoFormatting":"山内一豊と千代さんの夫婦愛の結晶 高知城を歩こう!","postUrl":"http://www.pippikochi.or.jp/events/2010/12/post-252.shtml","content":"さすが敵から身を守るお城!\u003cb\u003e高知城\u003c/b\u003eの至る所に仕掛けがあるのをご存知ですか?知られていない\u003cb\u003e高知城\u003c/b\u003eの姿がわかるかも!?私たちと一緒に歩いてみませんか。 【日時】12月4日(土)13:30~15:30 【集合場所】高知樹追手門前 【定員】20名(先着) ...","author":"kvnc2","blogUrl":"http://www.pippikochi.or.jp/events/","publishedDate":"Wed, 24 Nov 2010 16:58:46 -0800"},{"GsearchResultClass":"GblogSearch","title":"中央公園と\u003cb\u003e高知城\u003c/b\u003e - こんぶろ-酒屋のブログ-","titleNoFormatting":"中央公園と高知城 - こんぶろ-酒屋のブログ-","postUrl":"http://blog.goo.ne.jp/konjiru/e/584250c87cdbc6c0b25926c2406b68af","content":"とある小さな酒屋、近藤印 \u003cb\u003e高知\u003c/b\u003e酒店のお酒にまつわったり・まつわんなかったりするブログです。","author":"konjiru","blogUrl":"http://blog.goo.ne.jp/konjiru/","publishedDate":"Tue, 16 Nov 2010 06:28:49 -0800"}],"cursor":{"pages":[{"start":"0","label":1},{"start":"4","label":2},{"start":"8","label":3},{"start":"12","label":4},{"start":"16","label":5},{"start":"20","label":6},{"start":"24","label":7},{"start":"28","label":8}],"estimatedResultCount":"80969","currentPageIndex":0,"moreResultsUrl":"http://blogsearch.google.com/blogsearch?oe\u003dutf8\u0026ie\u003dutf8\u0026safe\u003dactive\u0026source\u003duds\u0026start\u003d0\u0026hl\u003dja\u0026q\u003d%E9%AB%98%E7%9F%A5%E5%9F%8E"}}, "responseDetails": null, "responseStatus": 200}


    ブラウザ画面



  4. Google API には、どんなものがある?

    以下のサイトの APIs Using the Loader にあるものが Google API。
    但し、JSON に対応していないものがある。

    http://code.google.com/intl/ja/apis/loader/index.html


実際に、Google API を使った android のサンプル・アプリを作ってみようと思います~
たぶん。