usc yahoo! boss, yap and yql overview
DESCRIPTION
Overview of three Yahoo! Technologies. Build your Own Search Service (BOSS), Yahoo! Query Language (YQL) and the Yahoo! Application Platform (YAP) for the University of South CarolinaTRANSCRIPT
Yahoo! Open TechnologiesJonathan LeBlanc – Technology Evangelist
Yahoo! Developer Network – Partner Integrations
Blog: www.nakedtechnologist.com
Twitter: jcleblanc
2
Build Your Own Search Service( BOSS )
3
How Do I Use It?Development and Stuff
4
BOSS – Requesting Data
http://boss.yahooapis.com/ysearch/{service}/v1/
{query}?appid={yourBOSSappid}&[params]
Params
• start • format
• count • callback
• lang • sites
• region
5
What Can I Build With This Thing? BOSS Examples in Practice
6
New Presentation Models
7
Client / Browser Integrations
8
New Ranking Models
9
Vertical/niche search products
10
Yahoo! Application Platform( YAP )
11
YAP Applications What’s a YAP Application?
12
• Runs on YAP
• Supports 2- & 3- legged OAuth
• Supports OpenSocial 0.8
JavaScript APIs
Open Applications
13
Open Application - Views
Small View
Large View
14
15
16
• Runs off platform
• Supports 2- & 3-legged OAuth
• Does not contain views
• Requires users to authenticate
session
OAuth Applications
17
Y!OS Components How does it work?
19
Y!OS Components – Open Authentication (OAuth)
• 2-legged & 3-legged OAuth
• Consumer / Shared Secret keys
• Similar to proprietary BBAuth, but
open standard
• http://developer.yahoo.com/oauth/
20
• Allows secured access to private data
• Whitelisted components
• Will begin integrating into OSML
• http://developer.yahoo.com/yap/yml
Y!OS Components – Yahoo Markup Language (YML)
21
• Social Directory (read)
• Contacts (read)
• User Status (read / write)
• Updates (read / write)
• http://developer.yahoo.com/social
Y!OS Components – Social APIs
22
• HTML / CSS / JavaScript securer
• Enforces standards
• Includes JSLint (http://www.jslint.com)
• One of the first to integrate Caja
• http://code.google.com/p/google-caja
• http://developer.yahoo.com/yap/guide/caja-
support.html
Y!OS Components – Caja
23
Caja - IFrame Security Concerns
IFrame Concerns
• Drive-by downloads
• No real content restrictions
• Other known exploits
Caja Implementation
• Blacklist all / Whitelist some model
• Secure OpenSocial container
24
PHP SDK Currently AvailableOpen and OAuth Applications
ActionScript 3 SDK Currently AvailableOpen Applications
Y!OS Components – SDKs
25
Yahoo! Query Language (YQL) SELECT * FROM Internet
26
27
SELECT * FROM Internet
28
29
30
SELECT myColumn, myTitle
FROM myTable(0, 50)
WHERE myColumn = 'value' AND myTitle = 'title‘
LIMIT 3 OFFSET 10 |
sort(field='myColumn') | reverse()
YQL – Query Structure
31
YQL Command: SHOW tables (79 Standard / 222 with community)
YQL – Available Tables
<table>atom</table><table>csv</table><table>feed</table><table>flickr.photos.exif</table><table>flickr.photos.info</table><table>flickr.photos.interestingness</table><table>flickr.photos.recent</table><table>flickr.photos.search</table><table>flickr.photos.sizes</table><table>flickr.places</table><table>flickr.places.info</table><table>geo.places</table><table>geo.places.ancestors</table><table>geo.places.belongtos</table><table>geo.places.children</table><table>geo.places.neighbors</table><table>geo.places.parent</table><table>geo.places.siblings</table><table>geo.placetypes</table><table>gnip.activity</table><table>html</table><table>json</table><table>local.search</table><table>microformats</table><table>music.artist.id</table><table>music.artist.popular</table><table>music.artist.search</table><table>music.artist.similar</table>
<table>music.release.artist</table><table>music.release.id</table><table>music.release.popular</table><table>music.release.search</table><table>music.track.id</table><table>music.track.popular</table><table>music.track.search</table><table>music.video.category</table><table>music.video.id</table><table>music.video.popular</table><table>music.video.search</table><table>music.video.similar</table><table>mybloglog.community.find</table><table>mybloglog.member</table><table>mybloglog.member.contacts</table><table>mybloglog.member.newwithcontacts</table><table>mybloglog.member.newwithme</table><table>mybloglog.members.find</table><table>mybloglog.stats.find</table><table>rss</table><table>search.images</table><table>search.news</table><table>search.siteexplorer.inlinks</table><table>search.siteexplorer.pages</table><table>search.spelling</table><table>search.suggest</table><table>search.termextract</table><table>search.web</table>
<table>social.connections</table><table>social.contacts</table><table>social.presence</table><table>social.profile</table><table>social.updates</table><table>upcoming.category</table><table>upcoming.country</table><table>upcoming.events</table><table>upcoming.events.bestinplace</table><table>upcoming.groups</table><table>upcoming.metro</table><table>upcoming.state</table><table>upcoming.user</table><table>upcoming.venue</table><table>uritemplate</table><table>weather.forecast</table><table>xml</table><table>yahoo.identity</table><table>yap.setsmallview</table><table>yql.admin.blockedips</table><table>yql.admin.blockedscripts</table>
32
YQL Command: DESC social.connections
YQL – Table Contents
33
YQL - Running a Query
http://query.yahooapis.com/v1/yql?[params]
http://query.yahooapis.com/v1/public/yql?[params]
Params• q=[QUERY]• format=[xml / json]• callback=[function name]• diagnostics=[true / false]
34
YQL – Output Types
35
YQL Open Data Tables Structure the internet
36
YQL – Open Data Tables
37
YQL – Using an Open Data Table
USE ‘{TABLE URL}’ as digg;SELECT * FROM digg WHERE topic=‘apple’;
38
YQL Execute Augment the Internet
39
40
41
End Result What’s this data going to do for me?
42
43
44
45
Getting Started
BOSS Main Pagehttp://developer.yahoo.com/boss
Y!OS Main Pagehttp://developer.yahoo.com/yos
YQL Consolehttp://developer.yahoo.com/yql/console
Developer Forumshttp://developer.yahoo.com/forums
46
Thank You Questions?