460 likes | 468 Views
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 Carolina
E N D
Yahoo! Open Technologies Jonathan LeBlanc – Technology Evangelist Yahoo! Developer Network – Partner Integrations Blog: www.nakedtechnologist.com Twitter: jcleblanc
Build Your Own Search Service ( BOSS ) 2
How Do I Use It? Development and Stuff 3
BOSS – Requesting Data http://boss.yahooapis.com/ysearch/{service}/v1/ {query}?appid={yourBOSSappid}&[params] Params • start • count • lang • region • format • callback • sites 4
What Can I Build With This Thing? BOSS Examples in Practice 5
Yahoo! Application Platform ( YAP ) 10
YAP Applications What’s a YAP Application? 11
Open Applications • Runs on YAP • Supports 2- & 3- legged OAuth • Supports OpenSocial 0.8 JavaScript APIs 12
Open Application - Views Large View Small View 13
OAuth Applications • Runs off platform • Supports 2- & 3-legged OAuth • Does not contain views • Requires users to authenticate session 16
Y!OS Components How does it work?
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/ 19
Y!OS Components – Yahoo Markup Language (YML) • Allows secured access to private data • Whitelisted components • Will begin integrating into OSML • http://developer.yahoo.com/yap/yml 20
Y!OS Components – Social APIs • Social Directory (read) • Contacts (read) • User Status (read / write) • Updates (read / write) • http://developer.yahoo.com/social 21
Y!OS Components – Caja • 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 22
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 23
Y!OS Components – SDKs PHP SDK Currently Available Open and OAuth Applications ActionScript 3 SDK Currently Available Open Applications 24
Yahoo! Query Language (YQL) SELECT * FROM Internet 25
YQL – Query Structure SELECT myColumn, myTitle FROM myTable(0, 50) WHERE myColumn = 'value' AND myTitle = 'title‘ LIMIT 3 OFFSET 10 | sort(field='myColumn') | reverse() 30
YQL – Available Tables YQL Command: SHOW tables (79 Standard / 222 with community) <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> 31
YQL – Table Contents YQL Command: DESC social.connections 32
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] 33
YQL Open Data Tables Structure the internet 35
YQL – Using an Open Data Table USE ‘{TABLE URL}’ as digg; SELECT * FROM digg WHERE topic=‘apple’; 37
YQL Execute Augment the Internet 38
End Result What’s this data going to do for me? 41
Getting Started BOSS Main Page http://developer.yahoo.com/boss Y!OS Main Page http://developer.yahoo.com/yos YQL Console http://developer.yahoo.com/yql/console Developer Forums http://developer.yahoo.com/forums 45
Thank You Questions? 46