SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Y!Pipes & YQL




 Yahoo! Developer Network


        2009.08.25
•
    –
       Technical Evangelist
    – YDN KR Blog
       ‣ ydnkrblog.com
    – YDN KR Twitter
       ‣ twitter.com/ydnkr

•
    – phpschool.com (’98~05, 8 )
    – lovesera.com      (2001 ~)
    – Twitter, @phploveme
Apps



 1                2       3
Open API          PHP      Flash
  RSS,            ASP   Silverlight
  XML             JSP    CSS/JS
 HTML                       YUI
!
var map = new
YMap(document.getElementById('map'));


                                          ?
…
var currentGeoPoint = new
YGeoPoint( _c.Lat, _c.Lon );
map.addMarker(currentGeoPoint);
…




                                          ?
…
if (flickcurl_prepare(fc,
"flickr.photos.geo.correctLocation",
parameters, count)) { … }
…


http://search.yahooapis.com/
ImageSearchService/V1/imageSearch?
                                          ?
appid=YahooDemo&query=Corvette&results=


                                          ?
2



http://weather.yahooapis.com/
forecastrss?p=FRXX0076&u=c
YQL




      YQL
      SELECT
      * FROM
      Internet
Data   !
Pipes


 NHN
                   RSS
 DAUM
                   JSON
Yahoo!                        Flash
                           Silverlight
                   HTML
                            CSS/JS
                               YUI
  MS
                   PHP

Web Data           Badge
Y!Pipes




Library
                     Canvas



Help                Debugger
Output
http://pipes.yahoo.com/phploveme/yuiyql
Widget
DEMO : Daum + Naver Blog
pipes.yahoo.com/phploveme/yuiyql
Yahoo Pipes
• DEMO Pipes URL
  – http://pipes.yahoo.com/phploveme/yuiyql
• Daum Blog        URL
    – http://apis.daum.net/search/blog?apikey=[APIKEY]&q=
• Naver Blog         URL
    – http://openapi.naver.com/search?key=[APIKEY]&target=blog&query=
•
    –
       User Input - Text Input
    –      URL
       Url - URL Builder
       String - Private String
       Source - Fetch Feed
    –
       Operator - Union
       Operator - Sort
Pipes
•
•
•       Access
•
•
YQL




developer.yahoo.com/yql
Yahoo! Query Language
•
    – social, flickr, geo, local, weather
    – mybloglog, search, upcoming, yahoo
    – HTML, RSS, XML, JSON, CSV
       + Community Open Data Table(177)
Yahoo!
YQL : social.profile


 select * from social.profile where
 guid=me
flickr :
YQL : flickr.photos.search
RSS

select * from rss where
url='http://ydnkrblog.com/blog/?feed=rss2'
IP/


 select * from ip.location where
 ip='222.122.195.6'
select * from twitter.user.status
where id='ydnkr'
YQL : Flickr Search
YQL : Flickr Photo Widget , yql-image.php
  <?php
  $yql = "select * from flickr.photos.search
          where safe_search='true' and text='yahoo korea'";

  $uri = "http://query.yahooapis.com/v1/public/yql?
  q=".urlencode($yql)."&format=xml";
  $sxml = simplexml_load_file($uri);

  header('Content-Type: text/html; charset=utf-8');

  foreach($sxml->results->photo as $photo){
  
 $uri = 'http://farm'
  
 
 .$photo['farm']
  
 
 .'.static.flickr.com/'
  
 
 .$photo['server'].'/'
  
 
 .$photo['id'].'_'
  
 
 .$photo['secret']
  
 
 .'_m.jpg';
  
 $html[] = $photo['title'].'<br/>';
  
 $html[] = '<img src="'.$uri.'"/><br/>';
  }
  echo implode("n", $html);
  ?>
http://sandbox.jemr.net/yql-image.php




    Source : http://sandbox.jemr.net/yql-image.phps
+ YUI

http://sandbox.jemr.net/yql-image-yui.php




   ,http://sandbox.jemr.net/yql-image-yui.phps
Insert / Update / Delete
•
• Remote Web Service
    –            ,
•           Open Data Table

use ‘http://mysite.com/table.xml’ as tableName;
select * from tableName where key=‘value’...
Twitter Insert 3
• 1. Open Data Table (XML)
  – Ex: http://sandbox.jemr.net/yql-twitter-status.xml

• 2. YQL
   use "http://sandbox.jemr.net/yql-twitter-status.xml" as table;
   insert into table (username, password, status)
   values('yqltesting','****','YQL-Twitter Test !!! ');


• 3. Twitter
1. Open Data Table                                         yql-twitter-status.xml
          <?xml version="1.0" encoding="UTF-8"?>
      <table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
      <meta>
        <sampleQuery>select * from {table}</sampleQuery>
      </meta>
      <bindings>
      	    <select itemPath="" produces="XML">
      	    	     <urls><url>http://twitter.com/statuses/show/{id}.xml</url></urls>
      	    	     <inputs>
      	    	     	    <key id="username" type="xs:string" required="false" paramType="variable" />
      	    	     	    <key id="id" type="xs:string" required="false" paramType="path" />
      	    	     </inputs>
      	    	     <execute><![CDATA[
      	    var r = null;
      	    if (username) {
      	    	     var query = y.query('select * from twitter.user.timeline where id="'+username+'";');
      	    	     var result = <twitter/>;
      	    	     for each (var twit in query.results.entry) {
      	    	     	    result.appendChild(twit);
      	    	     }
      	    	     response.object = result;
      	    } else {
      	    	     r = request.get().response;
      	    	     response.object = r;
      	    }
      	    ]]></execute>
      	    </select>
      	    <insert itemPath="" produces="XML">
      	    	     <urls><url>http://twitter.com/statuses/update.xml</url></urls>
      	    	     <inputs>
      	    	     	    <key id="username" type="xs:string" required="true" paramType="variable" />
      	    	     	    <key id="password" type="xs:string" required="true" paramType="variable" />
      	    	     	    <key id="status" type="xs:string" required="true" paramType="variable" />
      	    	     </inputs>
      	    	     <execute><![CDATA[
      	    	     var r = null;
      	    	     y.include("http://yqlblog.net/samples/base64.js");
      	    	     var authheader = "Basic " + Base64.encode(username+":"+password);
      	    	     var content = "status="+status;
      	    	     r = request.header("Authorization", authheader).post(content).response;
      	    	     response.object = r;
      	    ]]></execute>
      	    </insert>
      	    <delete itemPath="" produces="XML">
      	    	     <urls><url>http://twitter.com/statuses/destroy/{updateid}.xml</url></urls>
      	    	     <inputs>
      	    	     	    <key id="username" type="xs:string" required="true" paramType="variable" />
      	    	     	    <key id="password" type="xs:string" required="true" paramType="variable" />
      	    	     	    <key id="updateid" type="xs:string" required="true" paramType="path" />
      	    	     </inputs>
      	    	     <execute><![CDATA[
      	    	     var r = null;
      	    	     y.include("http://yqlblog.net/samples/base64.js");
      	    	     var authheader = "Basic " + Base64.encode(username+":"+password);
      	    	     response.object = request.header("Authorization", authheader).del().response;
      	    ]]></execute>
      	    </delete>
      </bindings>
      </table>
2. INSERT into Twitter
  use "http://sandbox.jemr.net/yql-twitter-status.xml" as table;
  insert into table (username, password, status) values('yqltesting','***','YQL-Twitter Test !!! ');
3. Twitter
    http://twitter.com/yqltesting
(177)
http://www.slideshare.net/phploveme/ignite-seoul-intro
: Slideshare.net
select * from slideshare.transcript
where url="http://www.slideshare.net/phploveme/ignite-seoul-intro"
• YQL
    –
    –
    –                         Syntax
    – Interactive
•
    – parallel requests
    – Request / Data Size :
Community Open Data Table
http://datatables.org/
Evan Williams,@ev
Thanks
Developer.yahoo.com
   ydnkrblog.com

Mais conteúdo relacionado

Mais procurados

SharePoint and jQuery Essentials
SharePoint and jQuery EssentialsSharePoint and jQuery Essentials
SharePoint and jQuery EssentialsMark Rackley
 
Bag Of Tricks From Iusethis
Bag Of Tricks From IusethisBag Of Tricks From Iusethis
Bag Of Tricks From IusethisMarcus Ramberg
 
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2K
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2KZepto.js, a jQuery-compatible mobile JavaScript framework in 2K
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2KThomas Fuchs
 
td_mxc_rubyrails_shin
td_mxc_rubyrails_shintd_mxc_rubyrails_shin
td_mxc_rubyrails_shintutorialsruby
 
Introduction To Django (Strange Loop 2011)
Introduction To Django (Strange Loop 2011)Introduction To Django (Strange Loop 2011)
Introduction To Django (Strange Loop 2011)Jacob Kaplan-Moss
 
HirshHorn theme: how I created it
HirshHorn theme: how I created itHirshHorn theme: how I created it
HirshHorn theme: how I created itPaul Bearne
 
Write Less Do More
Write Less Do MoreWrite Less Do More
Write Less Do MoreRemy Sharp
 
Как получить чёрный пояс по WordPress?
Как получить чёрный пояс по WordPress?Как получить чёрный пояс по WordPress?
Как получить чёрный пояс по WordPress?Yevhen Kotelnytskyi
 
Как получить чёрный пояс по WordPress? v2.0
Как получить чёрный пояс по WordPress? v2.0Как получить чёрный пояс по WordPress? v2.0
Как получить чёрный пояс по WordPress? v2.0Yevhen Kotelnytskyi
 
WordPress for developers - phpday 2011
WordPress for developers -  phpday 2011WordPress for developers -  phpday 2011
WordPress for developers - phpday 2011Maurizio Pelizzone
 
Mashing up JavaScript – Advanced Techniques for modern Web Apps
Mashing up JavaScript – Advanced Techniques for modern Web AppsMashing up JavaScript – Advanced Techniques for modern Web Apps
Mashing up JavaScript – Advanced Techniques for modern Web AppsBastian Hofmann
 
Performance improvements tips and tricks
Performance improvements tips and tricksPerformance improvements tips and tricks
Performance improvements tips and tricksdiego bragato
 
A Rich Web experience with jQuery, Ajax and .NET
A Rich Web experience with jQuery, Ajax and .NETA Rich Web experience with jQuery, Ajax and .NET
A Rich Web experience with jQuery, Ajax and .NETJames Johnson
 

Mais procurados (20)

SharePoint and jQuery Essentials
SharePoint and jQuery EssentialsSharePoint and jQuery Essentials
SharePoint and jQuery Essentials
 
Bag Of Tricks From Iusethis
Bag Of Tricks From IusethisBag Of Tricks From Iusethis
Bag Of Tricks From Iusethis
 
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2K
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2KZepto.js, a jQuery-compatible mobile JavaScript framework in 2K
Zepto.js, a jQuery-compatible mobile JavaScript framework in 2K
 
td_mxc_rubyrails_shin
td_mxc_rubyrails_shintd_mxc_rubyrails_shin
td_mxc_rubyrails_shin
 
jQuery: Events, Animation, Ajax
jQuery: Events, Animation, AjaxjQuery: Events, Animation, Ajax
jQuery: Events, Animation, Ajax
 
RicoLiveGrid
RicoLiveGridRicoLiveGrid
RicoLiveGrid
 
Alfredo-PUMEX
Alfredo-PUMEXAlfredo-PUMEX
Alfredo-PUMEX
 
Introduction To Django (Strange Loop 2011)
Introduction To Django (Strange Loop 2011)Introduction To Django (Strange Loop 2011)
Introduction To Django (Strange Loop 2011)
 
HirshHorn theme: how I created it
HirshHorn theme: how I created itHirshHorn theme: how I created it
HirshHorn theme: how I created it
 
Write Less Do More
Write Less Do MoreWrite Less Do More
Write Less Do More
 
jQuery Basic API
jQuery Basic APIjQuery Basic API
jQuery Basic API
 
Mashing up JavaScript
Mashing up JavaScriptMashing up JavaScript
Mashing up JavaScript
 
Как получить чёрный пояс по WordPress?
Как получить чёрный пояс по WordPress?Как получить чёрный пояс по WordPress?
Как получить чёрный пояс по WordPress?
 
Как получить чёрный пояс по WordPress? v2.0
Как получить чёрный пояс по WordPress? v2.0Как получить чёрный пояс по WordPress? v2.0
Как получить чёрный пояс по WordPress? v2.0
 
Jquery ui
Jquery uiJquery ui
Jquery ui
 
WordPress for developers - phpday 2011
WordPress for developers -  phpday 2011WordPress for developers -  phpday 2011
WordPress for developers - phpday 2011
 
Mashing up JavaScript – Advanced Techniques for modern Web Apps
Mashing up JavaScript – Advanced Techniques for modern Web AppsMashing up JavaScript – Advanced Techniques for modern Web Apps
Mashing up JavaScript – Advanced Techniques for modern Web Apps
 
Performance improvements tips and tricks
Performance improvements tips and tricksPerformance improvements tips and tricks
Performance improvements tips and tricks
 
A Rich Web experience with jQuery, Ajax and .NET
A Rich Web experience with jQuery, Ajax and .NETA Rich Web experience with jQuery, Ajax and .NET
A Rich Web experience with jQuery, Ajax and .NET
 
jQuery quick tuts
jQuery quick tutsjQuery quick tuts
jQuery quick tuts
 

Semelhante a YDN KR Tech Talk : Pipes 와 YQL 활용하기

Simple blog wall creation on Java
Simple blog wall creation on JavaSimple blog wall creation on Java
Simple blog wall creation on JavaMax Titov
 
XamarinとAWSをつないでみた話
XamarinとAWSをつないでみた話XamarinとAWSをつないでみた話
XamarinとAWSをつないでみた話Takehito Tanabe
 
HTML5 - The 2012 of the Web
HTML5 - The 2012 of the WebHTML5 - The 2012 of the Web
HTML5 - The 2012 of the WebRobert Nyman
 
Rich Portlet Development in uPortal
Rich Portlet Development in uPortalRich Portlet Development in uPortal
Rich Portlet Development in uPortalJennifer Bourey
 
Building @Anywhere (for TXJS)
Building @Anywhere (for TXJS)Building @Anywhere (for TXJS)
Building @Anywhere (for TXJS)danwrong
 
YQL: Hacking on steroids - Yahoo! Open Hack Day 2012
YQL: Hacking on steroids - Yahoo! Open Hack Day 2012YQL: Hacking on steroids - Yahoo! Open Hack Day 2012
YQL: Hacking on steroids - Yahoo! Open Hack Day 2012Saurabh Sahni
 
HTML5 - The 2012 of the Web - Adobe MAX
HTML5 - The 2012 of the Web - Adobe MAXHTML5 - The 2012 of the Web - Adobe MAX
HTML5 - The 2012 of the Web - Adobe MAXRobert Nyman
 
Resource Routing in ExpressionEngine
Resource Routing in ExpressionEngineResource Routing in ExpressionEngine
Resource Routing in ExpressionEngineMichaelRog
 
GDI Seattle - Intro to JavaScript Class 4
GDI Seattle - Intro to JavaScript Class 4GDI Seattle - Intro to JavaScript Class 4
GDI Seattle - Intro to JavaScript Class 4Heather Rock
 
Understanding backbonejs
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejsNick Lee
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)Doris Chen
 
Doctype htm1
Doctype htm1Doctype htm1
Doctype htm1Eddy_TKJ
 
Rugalytics | Ruby Manor Nov 2008
Rugalytics | Ruby Manor Nov 2008Rugalytics | Ruby Manor Nov 2008
Rugalytics | Ruby Manor Nov 2008Rob
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosIgor Sobreira
 

Semelhante a YDN KR Tech Talk : Pipes 와 YQL 활용하기 (20)

YQL & Yahoo! Apis
YQL & Yahoo! ApisYQL & Yahoo! Apis
YQL & Yahoo! Apis
 
SEA Open Hack - YQL
SEA Open Hack - YQLSEA Open Hack - YQL
SEA Open Hack - YQL
 
Yql hacku iitd_2012
Yql hacku iitd_2012Yql hacku iitd_2012
Yql hacku iitd_2012
 
Simple blog wall creation on Java
Simple blog wall creation on JavaSimple blog wall creation on Java
Simple blog wall creation on Java
 
Jquery Fundamentals
Jquery FundamentalsJquery Fundamentals
Jquery Fundamentals
 
XamarinとAWSをつないでみた話
XamarinとAWSをつないでみた話XamarinとAWSをつないでみた話
XamarinとAWSをつないでみた話
 
HTML5 - The 2012 of the Web
HTML5 - The 2012 of the WebHTML5 - The 2012 of the Web
HTML5 - The 2012 of the Web
 
ApacheCon 2005
ApacheCon 2005ApacheCon 2005
ApacheCon 2005
 
Rich Portlet Development in uPortal
Rich Portlet Development in uPortalRich Portlet Development in uPortal
Rich Portlet Development in uPortal
 
Building @Anywhere (for TXJS)
Building @Anywhere (for TXJS)Building @Anywhere (for TXJS)
Building @Anywhere (for TXJS)
 
YQL: Hacking on steroids - Yahoo! Open Hack Day 2012
YQL: Hacking on steroids - Yahoo! Open Hack Day 2012YQL: Hacking on steroids - Yahoo! Open Hack Day 2012
YQL: Hacking on steroids - Yahoo! Open Hack Day 2012
 
HTML5 - The 2012 of the Web - Adobe MAX
HTML5 - The 2012 of the Web - Adobe MAXHTML5 - The 2012 of the Web - Adobe MAX
HTML5 - The 2012 of the Web - Adobe MAX
 
Resource Routing in ExpressionEngine
Resource Routing in ExpressionEngineResource Routing in ExpressionEngine
Resource Routing in ExpressionEngine
 
Api
ApiApi
Api
 
GDI Seattle - Intro to JavaScript Class 4
GDI Seattle - Intro to JavaScript Class 4GDI Seattle - Intro to JavaScript Class 4
GDI Seattle - Intro to JavaScript Class 4
 
Understanding backbonejs
Understanding backbonejsUnderstanding backbonejs
Understanding backbonejs
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
 
Doctype htm1
Doctype htm1Doctype htm1
Doctype htm1
 
Rugalytics | Ruby Manor Nov 2008
Rugalytics | Ruby Manor Nov 2008Rugalytics | Ruby Manor Nov 2008
Rugalytics | Ruby Manor Nov 2008
 
Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazos
 

Mais de Jinho Jung

[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기
[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기
[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기Jinho Jung
 
[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...
[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...
[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...Jinho Jung
 
[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행
[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행
[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행Jinho Jung
 
[Ignite 강남 2016] 장정화-내인생을바꾼 improv
[Ignite 강남 2016] 장정화-내인생을바꾼 improv[Ignite 강남 2016] 장정화-내인생을바꾼 improv
[Ignite 강남 2016] 장정화-내인생을바꾼 improvJinho Jung
 
[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?
[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?
[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?Jinho Jung
 
[Ignite 강남 2016] 유소희-job nomad
[Ignite 강남 2016] 유소희-job nomad[Ignite 강남 2016] 유소희-job nomad
[Ignite 강남 2016] 유소희-job nomadJinho Jung
 
[Ignite 강남 2016] 김태길 무엇이든 적어보세요
[Ignite 강남 2016] 김태길 무엇이든 적어보세요[Ignite 강남 2016] 김태길 무엇이든 적어보세요
[Ignite 강남 2016] 김태길 무엇이든 적어보세요Jinho Jung
 
[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투
[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투
[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투Jinho Jung
 
[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다
[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다
[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다Jinho Jung
 
[Ignite 강남 2016] 이미화-일상,조용한혁명
[Ignite 강남 2016] 이미화-일상,조용한혁명[Ignite 강남 2016] 이미화-일상,조용한혁명
[Ignite 강남 2016] 이미화-일상,조용한혁명Jinho Jung
 
[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니
[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니
[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니Jinho Jung
 
[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해
[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해
[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해Jinho Jung
 
[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정
[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정
[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정Jinho Jung
 
[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다
[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다
[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다Jinho Jung
 
[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다
[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다
[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다Jinho Jung
 
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기Jinho Jung
 
행복한 1인기업 이야기 : Happy 1Man Company
행복한 1인기업 이야기 : Happy 1Man Company행복한 1인기업 이야기 : Happy 1Man Company
행복한 1인기업 이야기 : Happy 1Man CompanyJinho Jung
 
Hackathon & hack day 이야기
Hackathon & hack day 이야기Hackathon & hack day 이야기
Hackathon & hack day 이야기Jinho Jung
 
서울스케쳐 전시계획서
서울스케쳐 전시계획서서울스케쳐 전시계획서
서울스케쳐 전시계획서Jinho Jung
 
행복화실 2014 - 12주 과정 Happy drawing 2014
행복화실 2014 - 12주 과정 Happy drawing 2014행복화실 2014 - 12주 과정 Happy drawing 2014
행복화실 2014 - 12주 과정 Happy drawing 2014Jinho Jung
 

Mais de Jinho Jung (20)

[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기
[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기
[Ignite 강남 2016] 천성권 지속가능한 딸바보로 살기
 
[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...
[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...
[Ignite 강남 2016] 조현길 경영자처럼 일할테니 경영자의 월급을 주세ᄋ...
 
[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행
[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행
[Ignite 강남 2016] 이지현 비주얼씽킹 세계여행
 
[Ignite 강남 2016] 장정화-내인생을바꾼 improv
[Ignite 강남 2016] 장정화-내인생을바꾼 improv[Ignite 강남 2016] 장정화-내인생을바꾼 improv
[Ignite 강남 2016] 장정화-내인생을바꾼 improv
 
[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?
[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?
[Ignite 강남 2016] 김영진-당신의 이름에서 회사를 지우면?
 
[Ignite 강남 2016] 유소희-job nomad
[Ignite 강남 2016] 유소희-job nomad[Ignite 강남 2016] 유소희-job nomad
[Ignite 강남 2016] 유소희-job nomad
 
[Ignite 강남 2016] 김태길 무엇이든 적어보세요
[Ignite 강남 2016] 김태길 무엇이든 적어보세요[Ignite 강남 2016] 김태길 무엇이든 적어보세요
[Ignite 강남 2016] 김태길 무엇이든 적어보세요
 
[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투
[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투
[Ignite 강남 2016] 유혜경-사회복지사의 공감력고군분투
 
[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다
[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다
[Ignite 강남 2016] 정기원-스타트업계의 멋진 여자들을 인터뷰해보았다
 
[Ignite 강남 2016] 이미화-일상,조용한혁명
[Ignite 강남 2016] 이미화-일상,조용한혁명[Ignite 강남 2016] 이미화-일상,조용한혁명
[Ignite 강남 2016] 이미화-일상,조용한혁명
 
[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니
[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니
[Ignite 강남 2016] 정해인 아빠가 먼저 피아노 배워도 되겠니
 
[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해
[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해
[Ignite 강남 2016] 황준석-사회생활 초년생의 꿈을 찾는 항해
 
[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정
[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정
[Ignite 강남 2016] 차성국 아들과 함께한 국토대장정
 
[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다
[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다
[Ignite 강남 2016] 김홍균 모든 것은 누군가의 상상에서 시작됐다
 
[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다
[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다
[Ignite 강남 2016] 정예진 맞춤법은 꼭 지켜야합니다
 
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
Ignite seoul 8회 12 천성권 혼나지 않는 남편으로 살기
 
행복한 1인기업 이야기 : Happy 1Man Company
행복한 1인기업 이야기 : Happy 1Man Company행복한 1인기업 이야기 : Happy 1Man Company
행복한 1인기업 이야기 : Happy 1Man Company
 
Hackathon & hack day 이야기
Hackathon & hack day 이야기Hackathon & hack day 이야기
Hackathon & hack day 이야기
 
서울스케쳐 전시계획서
서울스케쳐 전시계획서서울스케쳐 전시계획서
서울스케쳐 전시계획서
 
행복화실 2014 - 12주 과정 Happy drawing 2014
행복화실 2014 - 12주 과정 Happy drawing 2014행복화실 2014 - 12주 과정 Happy drawing 2014
행복화실 2014 - 12주 과정 Happy drawing 2014
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

YDN KR Tech Talk : Pipes 와 YQL 활용하기

  • 1. Y!Pipes & YQL Yahoo! Developer Network 2009.08.25
  • 2. – Technical Evangelist – YDN KR Blog ‣ ydnkrblog.com – YDN KR Twitter ‣ twitter.com/ydnkr • – phpschool.com (’98~05, 8 ) – lovesera.com (2001 ~) – Twitter, @phploveme
  • 3. Apps 1 2 3 Open API PHP Flash RSS, ASP Silverlight XML JSP CSS/JS HTML YUI
  • 4.
  • 5. ! var map = new YMap(document.getElementById('map')); ? … var currentGeoPoint = new YGeoPoint( _c.Lat, _c.Lon ); map.addMarker(currentGeoPoint); … ? … if (flickcurl_prepare(fc, "flickr.photos.geo.correctLocation", parameters, count)) { … } … http://search.yahooapis.com/ ImageSearchService/V1/imageSearch? ? appid=YahooDemo&query=Corvette&results= ? 2 http://weather.yahooapis.com/ forecastrss?p=FRXX0076&u=c
  • 6. YQL YQL SELECT * FROM Internet
  • 7. Data !
  • 8.
  • 9. Pipes NHN RSS DAUM JSON Yahoo! Flash Silverlight HTML CSS/JS YUI MS PHP Web Data Badge
  • 10. Y!Pipes Library Canvas Help Debugger
  • 13. DEMO : Daum + Naver Blog pipes.yahoo.com/phploveme/yuiyql
  • 14. Yahoo Pipes • DEMO Pipes URL – http://pipes.yahoo.com/phploveme/yuiyql • Daum Blog URL – http://apis.daum.net/search/blog?apikey=[APIKEY]&q= • Naver Blog URL – http://openapi.naver.com/search?key=[APIKEY]&target=blog&query= • –  User Input - Text Input – URL  Url - URL Builder  String - Private String  Source - Fetch Feed –  Operator - Union  Operator - Sort
  • 15. Pipes • • • Access • •
  • 17. Yahoo! Query Language • – social, flickr, geo, local, weather – mybloglog, search, upcoming, yahoo – HTML, RSS, XML, JSON, CSV + Community Open Data Table(177)
  • 19. YQL : social.profile select * from social.profile where guid=me
  • 22. RSS select * from rss where url='http://ydnkrblog.com/blog/?feed=rss2'
  • 23. IP/ select * from ip.location where ip='222.122.195.6'
  • 24.
  • 25. select * from twitter.user.status where id='ydnkr'
  • 26.
  • 27. YQL : Flickr Search
  • 28. YQL : Flickr Photo Widget , yql-image.php <?php $yql = "select * from flickr.photos.search where safe_search='true' and text='yahoo korea'"; $uri = "http://query.yahooapis.com/v1/public/yql? q=".urlencode($yql)."&format=xml"; $sxml = simplexml_load_file($uri); header('Content-Type: text/html; charset=utf-8'); foreach($sxml->results->photo as $photo){ $uri = 'http://farm' .$photo['farm'] .'.static.flickr.com/' .$photo['server'].'/' .$photo['id'].'_' .$photo['secret'] .'_m.jpg'; $html[] = $photo['title'].'<br/>'; $html[] = '<img src="'.$uri.'"/><br/>'; } echo implode("n", $html); ?>
  • 29. http://sandbox.jemr.net/yql-image.php Source : http://sandbox.jemr.net/yql-image.phps
  • 30. + YUI http://sandbox.jemr.net/yql-image-yui.php ,http://sandbox.jemr.net/yql-image-yui.phps
  • 31. Insert / Update / Delete • • Remote Web Service – , • Open Data Table use ‘http://mysite.com/table.xml’ as tableName; select * from tableName where key=‘value’...
  • 32.
  • 33. Twitter Insert 3 • 1. Open Data Table (XML) – Ex: http://sandbox.jemr.net/yql-twitter-status.xml • 2. YQL use "http://sandbox.jemr.net/yql-twitter-status.xml" as table; insert into table (username, password, status) values('yqltesting','****','YQL-Twitter Test !!! '); • 3. Twitter
  • 34. 1. Open Data Table yql-twitter-status.xml <?xml version="1.0" encoding="UTF-8"?> <table xmlns="http://query.yahooapis.com/v1/schema/table.xsd"> <meta> <sampleQuery>select * from {table}</sampleQuery> </meta> <bindings> <select itemPath="" produces="XML"> <urls><url>http://twitter.com/statuses/show/{id}.xml</url></urls> <inputs> <key id="username" type="xs:string" required="false" paramType="variable" /> <key id="id" type="xs:string" required="false" paramType="path" /> </inputs> <execute><![CDATA[ var r = null; if (username) { var query = y.query('select * from twitter.user.timeline where id="'+username+'";'); var result = <twitter/>; for each (var twit in query.results.entry) { result.appendChild(twit); } response.object = result; } else { r = request.get().response; response.object = r; } ]]></execute> </select> <insert itemPath="" produces="XML"> <urls><url>http://twitter.com/statuses/update.xml</url></urls> <inputs> <key id="username" type="xs:string" required="true" paramType="variable" /> <key id="password" type="xs:string" required="true" paramType="variable" /> <key id="status" type="xs:string" required="true" paramType="variable" /> </inputs> <execute><![CDATA[ var r = null; y.include("http://yqlblog.net/samples/base64.js"); var authheader = "Basic " + Base64.encode(username+":"+password); var content = "status="+status; r = request.header("Authorization", authheader).post(content).response; response.object = r; ]]></execute> </insert> <delete itemPath="" produces="XML"> <urls><url>http://twitter.com/statuses/destroy/{updateid}.xml</url></urls> <inputs> <key id="username" type="xs:string" required="true" paramType="variable" /> <key id="password" type="xs:string" required="true" paramType="variable" /> <key id="updateid" type="xs:string" required="true" paramType="path" /> </inputs> <execute><![CDATA[ var r = null; y.include("http://yqlblog.net/samples/base64.js"); var authheader = "Basic " + Base64.encode(username+":"+password); response.object = request.header("Authorization", authheader).del().response; ]]></execute> </delete> </bindings> </table>
  • 35. 2. INSERT into Twitter use "http://sandbox.jemr.net/yql-twitter-status.xml" as table; insert into table (username, password, status) values('yqltesting','***','YQL-Twitter Test !!! ');
  • 36. 3. Twitter http://twitter.com/yqltesting
  • 38. : Slideshare.net select * from slideshare.transcript where url="http://www.slideshare.net/phploveme/ignite-seoul-intro"
  • 39. • YQL – – – Syntax – Interactive • – parallel requests – Request / Data Size :
  • 40. Community Open Data Table http://datatables.org/
  • 42. Thanks Developer.yahoo.com ydnkrblog.com