Ajaxで今よみがえる(^^;;-->[クロスブラウザ技術 ]DHTMLサンプル集
古籏一浩さんとのはじめての共著 発売中-->『Ajax実践テクニック』 古籏一浩/高橋 登史朗 (著)秀和システム
配本予約開始-->『入門Ajax 増補改訂版 』 高橋 登史朗 (著)ソフトバンククリエイティブ ; ISBN: 4797336242
【カテゴリー】 ActionScript ( 4 ) AjaSQL ( 9 ) Ajax ( 541 ) Arax ( 1 ) canvas ( 9 ) CSS ( 8 ) DLNA ( 1 ) Dojo ( 16 ) DOM ( 44 ) ES4 ( 3 ) 反重力物質 ( 1 ) ffAdd-on ( 1 ) Flash ( 45 ) Flash Remoting ( 11 ) FTP ( 2 ) GAF ( 9 ) Google Maps ( 106 ) GPS ( 38 ) HTTPヘッダサンプル ( 9 ) IPv6 ( 1 ) 漫画 ( 1 ) Java ( 44 ) JavaScript ( 232 ) jKamo ( 8 ) jQuery ( 66 ) jquery-ref ( 1 ) jsGadget ( 19 ) jslb_ ( 3 ) jslb_ajax ( 9 ) JSON ( 44 ) JSR223 ( 7 ) kjscmd ( 1 ) KNOPPIX ( 1 ) Linux ( 14 ) Mac ( 8 ) Memo ( 3 ) Microformats ( 2 ) Mini AJAX ( 2 ) MochiKit ( 2 ) mootools ( 2 ) Movable Type ( 57 ) MySQL ( 9 ) NewGameWeb ( 2 ) Nucleus ( 8 ) OpenAJAX ( 3 ) OpenDocument ( 1 ) OS ( 5 ) P2P ( 2 ) Perl ( 7 ) PHP ( 37 ) PostGIS ( 1 ) PostgreSQL ( 3 ) prototype.js ( 21 ) ROBOT ( 1 ) RSSリーダー ( 14 ) Ruby on Rails ( 7 ) Spry ( 6 ) SQLite ( 10 ) SQLiteWorker ( 2 ) ssh ( 1 ) SSI ( 2 ) SVG ( 15 ) TRON ( 1 ) Video ( 1 ) VML ( 1 ) Webサービス ( 89 ) widget ( 6 ) Wiki ( 1 ) Win ( 6 ) WSH ( 1 ) X01HT ( 29 ) XML ( 28 ) XOOPS ( 1 ) XQuery ( 2 ) XUL ( 3 ) Yahoo! UI ( 58 ) 日付入力用カレンダー ( 1 ) 『Ajax実践テクニック』 ( 1 ) 『入門 Ajax』 ( 42 ) WinTips ( 2 ) こりゃすごい ( 1 ) チューニング ( 20 ) ダイナミックロード関数 ( 7 ) リファレンス ( 13 ) ライブラリ ( 83 ) レーダー雨量表示 ( 1 ) ハード ( 15 ) ペンギン ( 2 ) ブラウザ ( 56 ) ブログでBBS ( 1 ) アクセスグラフ ( 3 ) カレンダーによる日付入力スクリプト ( 4 ) クロスブラウザ ( 10 ) クロスブラウザ関数 ( 7 ) スマートフォン ( 8 ) セキュリティ ( 87 ) ソフトイーサ ( 1 ) マッシュアップ ( 22 ) 暗号 ( 4 ) 映画 ( 41 ) 河川の水位グラフ ( 3 ) 回線 ( 2 ) 開発ツール ( 16 ) 牛久大仏 ( 8 ) 携帯 ( 112 ) 言語 ( 17 ) 故障 ( 1 ) 洪水警報システム ( 2 ) 今日のひと言 ( 2 ) 仕様 ( 39 ) 雑談 ( 199 ) 書籍 ( 17 ) 親子ウインドウ有無の確認関数 ( 3 ) 新海誠 ( 3 )

【info】有料サポート(ベータ)限定 承り中 /【JSサポート(仮称)】 

【費用】 とりあえず、言い値で承ります。ただし、できる範囲での限定受付です。込み具合等によりお受けできない場合がありますのであらかじめご了承ください。サポートにご納得いただけなければ料金は不要です。 逆に感動したら多くても構いません(^^;;;。

【できること】 たとえば、かも日記で無料配布されているコードのカスタマイズや、あるいは、JavaScript/Ajax全般+Webサーバーとの連携などのアドバイス&サンプル作成等 。A:jQchartなどでWeb用グラフ設置(エクセル→CSVやデータベースからWebグラフ生成)などのアドバイスやカスタマイズサンプル作成。B:ツリーメニューなどのカスタマイズサンプル。C:Google Mapsのカスタマイズ。etc...

【できないこと】 腕立て伏せ200回

【ライセンス】 私が今まで「かも日記」等で提供してきたコードの大半は、商用利用、改造、自由、連絡不要で、今後もそれらは変わりません。そして、この有料サポートによりカスタマイズコードなどが提供される場合でも、同様に、それらを商用利用しても改造しても自由です。ただし、制限のきついライブラリなどを使う場合は、各ライブラリのライセンスに準拠せざるを得ない場合があります。

【info】いつもいろいろなテストなどをページ内のあちこちでやっているので、重かったり、壊れていたりするf^^;ことも多いですが、何卒、ご了承ください ( _ _ b

【GAF このページ内へのリンク】
Allabout更新 YUI+Google AJAX Feed API
【GAF】GAFのキャッシュ
【GAF】GAFのクロスサイトスクリプティング対策1
【GAF】GAFを使う時の注意
【GAF】GAFがサポートするRSSフォーマット
【GAF】2つのリザルト形式 JSONとXML
【GAF】google.load
【GAF】GAFでAllaboutのRSSを読み込む
【Webサービス】Google AJAX Feed API リリース

[ GAF ]

2007年04月29日

Allabout更新 YUI+Google AJAX Feed API

Ajax 】 , GAF 】 , RSSリーダー 】 , Webサービス 】 , Yahoo! UI 】 , マッシュアップ 】 , ライブラリ ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed




引き続き、YUIアニメーションシリーズですが、ちょっと回り道をして、GAF APIと組み合わせてみます。

Allabout >> プログラミング >> JavaScript

YUI+Google AJAX Feed API


今月(2007年4月16日)GoogleからJavaScriptだけで別ドメインのRSSも読み込むことができるAPIがリリースされました。 Google AJAX Feed API(以下GAF API)です。

今回は、YUIシリーズの途中ですが、試しに、このリリースされたばかりのGAF APIとYUIを組み合わせて使ってみます。

GAF APIは簡単に言うと、Googleのプロクシサーバーを利用した、RSSリーダーのためのAPIです。

今回は、YUIアニメーションエフェクトを組み合わせて、別ドメインも読み込めるRSSリーダーを作ってみようというお話です。*このブログはEUCなので、下記サンプルは、例によってiframeで読み込みます。


投稿者 tato : 09:41

2007年04月23日

【GAF】GAFのキャッシュ

GAF ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


GAFでは、RSSを次のようにしてFeedメソッドの引数で指定します。

new google.feeds.Feed("http://jsgt.org/mt/01/atom.xml");

このとき、GoogleのGAF用プロクシサーバーを経由したデータは普通にキャッシュされています。

これは、GAFで出力でページ作成後、ATOMを書き換えて再読み込みしてみるとわかります(すぐには反映されません)。キャッシュのリフレッシュタイミングはまだわかりませんが、即書き換えたいときには、いつものように、これを騙すテクニックが有効です。サーバー側はいじれませんので、レスポンスヘッダはいじれませんが、たとえば、次のようにGETクエリーをいじってURLを変更する方法は使えます。

new google.feeds.Feed("http://jsgt.org/mt/01/atom.xml?123");

参考:Feedfetcher
http://www.google.com/support/webmasters/bin/topic.py?topic=8843

投稿者 tato : 07:25

【GAF】GAFのクロスサイトスクリプティング対策1

GAF ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


GAFのセキュリティ対策を調べて見ました。
まず、簡単なクロスサイトスクリプティングですが、「content(MTならcontentタグのCDATA内)」にスクリプトタグを書くとどうなるか?というと、次のようになりました。

<a href="javascript:alert('bodyのAタグにscript')">bodyのAタグにscript</a>
    ↓
<a href="javascript:void(0)">bodyのAタグにscript</a>

<script>alert('bodyにスクリプトタグ')</script>
    ↓
content内のスクリプト要素を丸ごと削除

なるほど。基本的な対策はなされているようです。

投稿者 tato : 07:12

2007年04月21日

【GAF】GAFを使う時の注意

Ajax 】 , GAF 】 , JSON 】 , RSSリーダー 】 , Webサービス 】 , セキュリティ ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


GAFがあんまり便利なので、ついやってしまう ? といけないので、再度リンクしておきます。

【Webサービス】ブログツールや広告を貼るときの注意(テストサンプルあり)
http://jsgt.org/mt/archives/01/000688.html

要するに、


別ドメインのWebサービスやブログアクセサリーなどを、パスワード入力のあるページなどへ貼ると、そのページ管理者の知らないうちに、パスワードを取られる危険があります。

ということです。つまり、SCRIPT要素で別ドメインのWebサービスを読み込むことは、そのWebサービスの管理者と自分のページのdocumentの管理権限を共有してしまうということなわけです。

つまり、この場合、Googleは、APIの機能を無料で提供する代わりに、APIを張り込まれたページすべてを書き換えることも出来る権限を手に入れます。まぁ、Googleを信頼するとしても、パスワードなどをそのページで入力できるようにするのは、個人情報保護法的にもレッドカードではないかな〜?という気がします。もちろん、これはGAFに限らず、ブログツールや広告など他のものにも当てはまるという基礎的?なお話ですけど。

更に、このAPIの場合は、Googleの先のWebサービス(RSSなど)をJSONで出力するわけですから、そこのWebサービス管理者ともページの管理権限をマッシュアップする(笑)ことになります。

基本的には、信頼できるサイトの、既にパブリックなデータを利用するということになると思いますし、とても便利で有用なサービスですが、どこで、どのように使うかは、セキュリティについても考えつつ利用するのが良いかな?と思います。

投稿者 tato : 20:02

2007年04月20日

【GAF】GAFがサポートするRSSフォーマット

Ajax 】 , GAF 】 , RSSリーダー 】 , Webサービス ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


Google AJAX Feed API がサポートするRSSフォーマットは次の通り
投稿者 tato : 23:36

【GAF】2つのリザルト形式 JSONとXML

Ajax 】 , GAF 】 , JSON 】 , RSSリーダー 】 , Webサービス ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


Google AJAX Feed API は2つの形式で結果を返すことができます。 JSONとXMLです。 デフォルトで、APIはJSON形式で返します。JSONのフォーマットは次の通り。
JSON Result Format
  • feed
    • title
      The feed title. Corresponds to the <title> element in Atom and the <title> element in RSS.
    • link
      The URL for the HTML version of the feed. Corresponds to the <link> element in Atom and the <link> element in RSS.
    • description
      The feed description. Corresponds to the <subtitle> element in Atom and the <description> element in RSS.
    • author
      The feed author. Corresponds to the <author> element in Atom.
    • entries[]
      A list of all of the entries in the feed. Corresponds to the <entry> element in Atom and the <item> element in RSS.
      • title
        The entry title. Corresponds to the <title> element in Atom and the <title> element in RSS.
      • link
        The URL for the HTML version of the entry. Corresponds to the <link> element in Atom and the <link> element in RSS.
      • content
        The body of this entry, inlcuding HTML tags. Since this value can contain HTML tags, you should display this value using elem.innerHTML = entry.content (as opposed to using document.createTextNode). Corresponds to the <content> or <summary> elements in Atom and the <description> element in RSS.
      • contentSnippet
        A snippet (< 120 characters) version of the content attribute. The snippet does not contain any HTML tags.
      • publishedDate
        The string date on which the entry was published of the form "13 Apr 2007 12:40:07 -0700". You can parse the date with new Date(entry.date). Corresponds to the <published> element in Atom and the <pubDate> element in RSS.
      • categories[]
        A list of string tags for the entry. Corresponds to the <category> element in Atom.
投稿者 tato : 23:29

【GAF】google.load

GAF ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


自分のページで AJAX Feed API を使うには、まず、Google MapsのようにAPIキーを取得する必要があります。そして、スクリプトの最初で、google.loadメソッドを呼ぶ必要があります。 たとえば次のように。。
<script type="text/javascript">
  google.load("feeds", "1");
</script>
これは、 feeds APIのバージョン1という意味です。新しいバージョンは今後使えるようになるかもしれませんが、とりあえず、今は「1」です。
投稿者 tato : 23:13

【GAF】GAFでAllaboutのRSSを読み込む

Ajax 】 , GAF 】 , RSSリーダー 】 , Webサービス ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


Google AJAX Feed API (GAF API)を使ってみます。

このブログはEUCのため、utf-8な作業は馴染みませんので、試したサンプルは別ファイルで置いて、 Google Mapsの時のようにiframeで読み込みます。

たとえば、こんな感じです。

<iframe src="http://jsgt.org/mt/01/test/gaf/googleAjaxFeedApi.htm" width="90%" height="80" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" ></iframe>

では、始めます。まず、他のドメインにあるRSSをこのjsgt.orgからJavaScriptで読み込めるでしょうか?AllaboutのRSSを読んでみます。



このサンプルのURL

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google AJAX Feed API - Simple Example</title> 
    <script type="text/javascript" src="http://www.google.com/jsapi?key=ここに自分のキー"></script>
    <script type="text/javascript">

    google.load("feeds", "1");

    function initialize() {
      var feed = new google.feeds.Feed("http://allabout.co.jp/internet/javascript/rss/index.xml");
      feed.load(function(result) {
        if (!result.error) {
          var container = document.getElementById("feed");
          for (var i = 0; i < result.feed.entries.length; i++) {
            var entry = result.feed.entries[i];
            var div = document.createElement("div");
            div.appendChild(document.createTextNode(entry.title));
            container.appendChild(div);
          }
        }
      });
    }
    google.setOnLoadCallback(initialize);

    </script>
  </head>
  <body>
    <div id="feed"></div>
  </body>
</html>


    古籏一浩 ( 2007年04月21日 17:05 )

    うちでもやってみました。とりあえず説明付きf(^^;
    あんまりAPIないのですけど、ドメイン超えが簡単にできるのでいいですね。
    RSSデータ内にCSVデータとか入れて定期的に更新するようにしても面白いかも。
    http://www.openspc2.org/JavaScript/Ajax/Ajax_study/index.html

    高橋 ( 2007年04月21日 20:10 )

    『Ajaxを勉強しよう』もかなり充実してきましたね〜。

    Google Maps APIでキーと共通というのは気づかなかったです(^^;。便利ですね。


    【コメント】(←clickで入力欄open)
投稿者 tato : 22:42

【Webサービス】Google AJAX Feed API リリース

Ajax 】 , GAF 】 , JSON 】 , RSSリーダー 】 , Webサービス ブックマークに追加する ブックマーク-- Buzzurl  / Hatena  / Livedoor track feed


Google AJAX Feed API Developer Guide
http://code.google.com/apis/ajaxfeeds/documentation/

#GoogleがRSS用のプロクシを用意してくれ、それから応答を引き出すためのAPIをリリースしました、ということ?

ちょっと試してみます(下記、AtomフィードリストはGoogle AJAX Feed API経由の読み込みです)。

おお。

=ざっくり和訳=
AJAX Feed APIによって、AtomやRSSフィードをJavaScriptだけで使うことができるようになります。あなたは、それらのフィードと、自分のコンテンツや、他のAPI(たとえば、Google Maps API)を簡単にマッシュアップすることができます。

APIを使うのには、APIキーの申し込みが必要です。

JavaScriptとXMLHttpRequestは、Same origin policyを使用します (訳注:要するに別ドメインとはアクセスできないというあのルール)。これによって、あるクラスのスクリプト用の攻撃からユーザを保護しますが、多くの開発者はAjaxベースのmashupsにそれらを書くことができません(訳注:ので不便です)。

Google AJAX Feed API はウェブで利用可能な内容の特定のタイプのために簡単な回避策をこれらの制限に提供します。

Google AJAX Feed API が、がどうユーザセキュリティを保持するかに関するその他の詳細に関して以下の security notes を見てください。

投稿者 tato : 14:02

【info】有料サポート(ベータ)限定 承り中 /【JSサポート(仮称)】 

【費用】 とりあえず、言い値で承ります。ただし、できる範囲での限定受付です。込み具合等によりお受けできない場合がありますのであらかじめご了承ください。サポートにご納得いただけなければ料金は不要です。 逆に感動したら多くても構いません(^^;;;。

【できること】 たとえば、かも日記で無料配布されているコードのカスタマイズや、あるいは、JavaScript/Ajax全般+Webサーバーとの連携などのアドバイス&サンプル作成等 。A:jQchartなどでWeb用グラフ設置(エクセル→CSVやデータベースからWebグラフ生成)などのアドバイスやカスタマイズサンプル作成。B:ツリーメニューなどのカスタマイズサンプル。C:Google Mapsのカスタマイズ。etc...

【できないこと】 腕立て伏せ200回

【ライセンス】 私が今まで「かも日記」等で提供してきたコードの大半は、商用利用、改造、自由、連絡不要で、今後もそれらは変わりません。そして、この有料サポートによりカスタマイズコードなどが提供される場合でも、同様に、それらを商用利用しても改造しても自由です。ただし、制限のきついライブラリなどを使う場合は、各ライブラリのライセンスに準拠せざるを得ない場合があります。

【jsgt.org関連 最新アクセス 10件 htmlファイルのみ 】(30秒更新/Max接続30分 リピートなし)