際際滷

際際滷Share a Scribd company logo
1rgで恬る
マッシュアップ
幄塀氏芙ワイズノット 小 俛匯隻
How to build 1 hour mashup site
◎Macbook pro
◎Macbook pro
Not 契邦
1rg參貧かけてたら
ゆだっちゃう
檎温庄鉛壊聞ったことある繁
徭蛍でMashup
したことある繁
サイトなんかも
巷_しちゃってる繁
Mashup
マッシュアップ
咄S喘囂
檎艶馨庄恰との離い
爆をいじったり
くっつけるのが
Remix
梧~はこっち
メロディ`はあっちで
Mashup
、欧襪世韻犬磴覆
笋┐襪世韻犬磴覆
いろんなサイトを
ごちゃまぜにしちゃえ
亊。と仇蹐硫儔慌鞄顎沿
How to build 1 hour mashup site
gは暴なんかより
嗤兆なMashupな繁が
臼今祇にいる
圷祇リの\弥さん
Sun 〜 RECRUIT Mash Up
Award 恷倔p
竃JAWS
How to build 1 hour mashup site
書晩は栖られない
らしい
火廷!
珂温壊鞄顎沿とは
アプリケ`ションの
壅B
劣はo尖文尖
やっていた
堰意珂晦盾裂して???
徭蛍で聞う蛍には
措いけど巷_できない
いまでもAPI巷_して
ないサイトのデ`タを
聞うときにやる
デ`タが凋
拱屬吠垢錣擦襪覆鵑
もってのほか
でもWeb2.0r旗は
サイト箸ある殻業
徭喇にデ`タや
システムを聞わせてくれる
なんで
ビジネスモデルの篁
デ`タを譴まzんでも
Q署する圭隈がない
でもトラフィックは
レ御で署になる
サイトにTГ垢襪燭
デ`タを聞おう
その聞わせてくれる
笥がWebAPI
弼?なWebAPIが
戻工されてきている
寄艶すると3嶽窃
デ`タ狼
RSS
Amazon Web Service
ホットペッパ`
Google碧
じゃらんnet
デ`タを巷蝕
ここの何蛍が謹い
屡贋にデ`タを
隔っているところは
否叟に婢_できる
I尖狼
スクリ`ンショット
侘B殆盾裂
テキスト★MP3Q
デ`タを誘げると
採らかのI尖を
してくれる
燕幣狼
Google Maps
NIFTY Timeline
べつやくメソッドAPI
弼?なデ`タを燕幣
する児P
ほとんどのAPIは
MVCのMやVに犁
Controllerを
どうやって恬る
屡贋の返隈と揖じ
PHP, Perl, Ruby, Java....
ちゃんと恬ると
掲揖豚I尖が謹く
PHPは音旋
そこで厘らが
Ruby on Rails
照弊麼
さすがはWeb2.0狼
フレ`クワ`ク
WebAPIをSにする
ActiveResource
檎温庄鉛壊2.0から炎別躙
でもRails2.0が
いつ竃るかはi
しかし粥界岳庄厩艶檎艶壊看顎姻界艶は
Rails  Rails にしか
聞えない
艶の圭隈を深えよう
さてMashupで
採を恬る
書晩のお}は
仝臼今祇梁畑マップ々
YMOZE-Yさんの
リクエスト
じゃらんが梁畑秤
をWebAPIで巷_
これをマッピング
どっから兜めるかな
まずは梁畑秤鵑
隔ってこよう
粥永鴛のペ`ジをiむ
How to build 1 hour mashup site
API聞うには
鞠hがいる
APIキ`をもらったら
URLを澣くだけ
http://jws.jalan.net/APICommon/
OnsenSearch/V1/?
key=&l_area=010802
&count=1&xml_ptn=1
掛珂晦で「ってくる
How to build 1 hour mashup site
これをプログラムで
ごにょごにょ???
檎温庄鉛壊を聞えば匯k
とは佩かない???
require 'net/http'
require 'cgi'
require 'rexml/document'
class Onsen
attr_accessor :address, :name, :id
KEY = 'phe11375af71ba'
URL = 'http://jws.jalan.net/APICommon/OnsenSearch/V1/?'
def self.?nd(params)
results = []
	 get(params).elements.each('Results/Onsen') do |el|
	 results << Onsen.new(el.elements["OnsenID"].text, el.elements["OnsenName"].text, el.elements
["OnsenAddress"].text)
end
results
end
def self.url(params)
params[:key] = KEY
URI.parse(URL+((params.map { |key,value| "#{key}=#{CGI::escape(value.to_s)}"}).join('&')))
end
def self.get(params)
REXML::Document.new(Net::HTTP.get(url(params)))
end
def initialize(id, name, address)
	 @id, @name, @address = id, name, address
end
end
これで粥永鴛を聞える
ちょっとiめないよね
袁犬楼賊隹で
ニセコの梁畑リストを
函り竃す
irb> puts Onsen.?nd(:count => 10, :s_area =>
'010802').map{|o| o.name}.join(',')
=>いわない梁畑,跡梁畑,劾晩梁畑,ニセコワイス互圻梁畑?(ニセ
コ),ワイス梁畑?(ニセコ),ひらふ梁畑?(ニセコ),ニセコアンヌプリ
梁畑?(ニセコ),ニセコ瀬下梁畑?(ニセコ),ニセコa梁畑...
こっちはマシ
このリストを
Google Mapに秘れる
こっちはRubyの
ライブラリがある
YM4R/GM
GoogleMaps APIを
Railsで聞うライブラリ
$ rails onsen -d sqlite3
$ cd onsen
$ script/plugin install 
svn://rubyforge.org/var/svn/ym4r/Plugins/GM/trunk/ym4r_gm
$ ./script/generate controller onsen index
さっきのOnsenクラスは
lib/onsen.rbに隠贋
class OnsenController < ApplicationController
def index
@map = GMap.new("map_div")
@map.control_init :large_map => true, :map_type => true
@map.center_zoom_init([42.808783,140.684566], 11)
end
end
<html>
<head>
<%= GMap.header %>
<%= @map.to_html %>
</head>
<body>
<%= @map.div(:width => 600, :height => 400) %>
</body>
</html>
これだけで仇躅輅
How to build 1 hour mashup site
これにじゃらんで
ゲットした梁畑を
ピンで嬉つ
Google Mapsでピンを
嬉つには業U業が
駅勣
じゃらんAPIでは
廖侭しか隔ってない
そこで
ジオコ`ディング
廖侭から業U業を
護り竃す
これもGoogle Maps API
の匯つ
YM4R/GMを聞えば
それもS?
ニセコkの業U業
を{べる
irb> niseko = Geocoding.get(`ニセコk¨)
irb> niseko.?rst.latlon
=> [40.34575, -3.816734]
Onsenクラスにコレを
くっつける
class Onsen
゛嶄待゛
def latlon
Geocoding.get(@address).?rst.latlon
end
end
これで2つのAPIを
あっさりMashup
これを仇蹐
慧りzむ
class OnsenController < ApplicationController
def index
@map = GMap.new("map_div")
@map.control_init(:large_map => true, :map_type => true)
@map.center_zoom_init([42.808783,140.684566], 11)
Onsen.?nd(:count => 10, :s_area => '010802').each do |o|
marker = GMarker.new(
o.latlon, :title => o.name,
:info_window => render_to_string(:partial => 'point', :locals
=> { :onsen => o }))
@map.overlay_init(marker)
end
end
end
患き竃しの堰意珂晦も
<div><strong><%=h onsen.name %></strong></div>
<div><%=h onsen.address %></div>
できあがり
How to build 1 hour mashup site
つまらない???
梁畑の亟寔も薮ろう
亟寔と冱えば
Flickr
How to build 1 hour mashup site
もちろん安艶恢粥永鴛巷蝕
Ruby喘バインドも
}方巷_
$ cd lib
$ wget http://redgreenblu.com/?ickr/?ickr.rb
$ vi ?ickr.rb # 57佩朕のAPIKEYを筝
$ cd ..
しに励弼梁畑の
亟寔を函誼
irb> ?ickr = Flickr.new
irb> photo = ?ickr.photos(:text => `ニセコ励弼梁畑¨).?rst
irb> photo.source('Thumbnail')
=>http://farm1.static.?ickr.com/136/328193836_725a658789_t.jpg
これもOnsenクラスに
いれちゃう
class Onsen
゛嶄待゛
def photo(size='Thumbnail')
Flickr.new.photos(:text => @name.gsub
(/.*/,'')).?rst.source(size)
end
end
これで亟寔も
函誼できちゃう
恷瘁にこれを
マッピング
<div><strong><%=h onsen.name %></strong></div>
<div><%=h onsen.address %></div>
<%= image_tag(onsen.photo.source(`Thumbnail¨))
rescue `No photo¨ %>
これで患き竃しに
亟寔が竃た
How to build 1 hour mashup site
亟寔栽ってない???
ひとまずこれで頼撹
音叉磴g表
Wい
キャッシュで個鋲
ニセコ參翌は
xべるように
しましょう
コメントとかは
温界岳壊喝温壊喝界看馨馨艶稼岳温恢鉛艶で
亊。は
逮沿馨看恢庄鉛艶で
これを個鋲して
徭蛍梁畑仇蹐
恬りませんか
スライドとソ`スは
http://blog.masuidrive.jp/

More Related Content

How to build 1 hour mashup site