USC Yahoo! BOSS, YAP and YQL Overview
-
Upload
jonathan-leblanc -
Category
Technology
-
view
1.412 -
download
0
description
Transcript of USC Yahoo! BOSS, YAP and YQL Overview
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?