Top 5 Tips for Building Viral Social Web Applications and Sites
Jonathan LeBlancDeveloper Evangelist
Email: [email protected]
Twitter: @jcleblanc
Programming Social Applications
Building Viral Experiences with OpenSocial, OAuth, OpenID, and Distributed Web Frameworks
http://shop.oreilly.com/product/0636920014201.do
Foundation for socializing applications and websites.
Open Source foundation.
Using Open Source Solutions
The foundation for “Programming Social Applications”
Open source is not the be all end all, it’s simply a solid foundation.
The Core Principals
Build for the relevant social & interest graphs
Understand your sharing model and integrate early
Use the work that other companies have invested in
Build for all available outlets
Use emerging social technologies
The Core Principals
Build for the relevant social & interest graphs
Understand your sharing model and integrate early
Use the work that other companies have invested in
Build for all available outlets
Use emerging social technologies
Build for relevant graphs A Poll
When do you integrate social outreach channels in your products?
Build for relevant graphs What do social and interest graphs consist of?
Build for relevant graphs Understanding Relationship Models
Follower Model
Connection Model
Group Model
Build for relevant graphs Integration Success and Failure of Zynga
• First round of “Mafia Wars” as an initial game partner for YAP in 2009. Failed to produce high install rates and difficult to integrate.
• Second integration of “Mafia Wars” and “FishVille” in late 2010. Higher install rates, new viral channels and little integration pain.
http://code.google.com/p/webfinger/
Build for relevant graphs Example Technology: WebFinger
Login name: jleblancIn real life: Jonathan LeBlancHome phone: 123-4567Office: San Jose, CALast Login: Tue Oct 4 12:41 on ttys000
[email protected]://www.jcleblanc.com
finger [email protected]
Build for relevant graphs WebFinger: Origin through the finger protocol
Build for relevant graphs WebFinger: How it Works
Build for relevant graphs WebFinger: How it Works
Build for relevant graphs WebFinger: How it Works
<XRD xmlns='http://docs.oasis-open.org/ns/xri/xrd-1.0' xmlns:hm='http://host-meta.net/xrd/1.0'> <hm:Host xmlns='http://host-meta.net/xrd/1.0'> gmail.com</hm:Host> <Link rel='lrdd' template= 'http://www.google.com/s2/webfinger/?q={uri}'> <Title>Resource Descriptor</Title> </Link></XRD>
curl http://gmail.com/.well-known/host-meta
Build for relevant graphs WebFinger: Performing WebFinger Discovery
The User Profile: http://www.google.com/profiles/nakedtechnologist
The portable contacts link: http://www-opensocial.googleusercontent.com/api/people/118167121283215553793/
The public Google Buzz feed: https://www.googleapis.com/buzz/v1/activities/118167121283215553793/@public
curl http://www.google.com/s2/webfinger/[email protected]
Build for relevant graphs WebFinger: Performing WebFinger Discovery
The Core Principals
Build for the relevant social & interest graphs
Understand your sharing model and integrate early
Use the work that other companies have invested in
Build for all available outlets
Use emerging social technologies
Understanding your sharing model
The real life versus online social graph
Understanding your sharing model
Sharing Models
The Opt-in Model
The Opt-out Model
Understanding your sharing model
Case study: The oversharing application
http://code.google.com/p/pubsubhubbub/
Understanding your sharing model
Example Technology: PubSubHubbub
Understanding your sharing model PubSubHubbub: How it Works
Understanding your sharing model PubSubHubbub: How it Works
Understanding your sharing model
PubSubHubbub: How it Works
Understanding your sharing model PubSubHubbub: How it Works
Understanding your sharing model PubSubHubbub: How it Works
www.salmon-protocol.org
Understanding your sharing model
Example Technology: The Salmon Protocol
Understanding your sharing model The Salmon Protocol: How it Works
Understanding your sharing model The Salmon Protocol: How it Works
Understanding your sharing model The Salmon Protocol: How it Works
• How does the publisher prevent spam or abuse?
• Is the content coming from a trusted source?
• How does the publisher ensure the quality of the updates?
Understanding your sharing model
The Salmon Protocol: Things to Consider
1. Subscriber sends signed request to publisher (e.g. using acct:[email protected]).
2. Publisher performs discovery on endpoint to verify identity provider.
• Webfinger• LRDD (Link-based Resource Descriptor)
3. Provider verifies signature via public keys obtained during discovery.
Understanding your sharing model
The Salmon Protocol: Determining Source
The Core Principals
Build for the relevant social & interest graphs
Understand your sharing model and integrate early
Use the work that other companies have invested in
Build for all available outlets
Use emerging social technologies
Use Existing Technology Don’t reinvent the wheel!
• Third round partner integrating with our social services.
• They created their own OAuth implementation since we did not have an appropriate SDK.
• Integration failed near completion of the code.
Use Existing Technology Partner Strategies: Failure to Integrate Company “ABC”
Use Existing Technology Example Technology: The Open Graph Protocol
http://ogp.me/
Use Existing Technology Open Graph Protocol: How Web Semantics Work
Geo<span class="geo"> <span class="latitude">52.48</span>, <span class="longitude">-1.89</span></span>
vCard<div class="vcard"> <div class="fn">Joe Doe</div> <div class="org">The Example Company</div> <div class="tel">604-555-1234</div> <a class="url" href="http://site.com/">http://site.com/</a> </div>
Use Existing Technology Open Graph Protocol: How Web Semantics Work
Use Existing Technology Open Graph Protocol: Vision of the Semantic Web
Use Existing Technology Open Graph Protocol: Reality of the Semantic Web
Use Existing Technology Open Graph Protocol: What Changed
<html xmlns:og="http://ogp.me/ns#"><head><title>Restaurant at Wente Vineyards – Livermore</title><meta property="og:url" content="http://www.yelp.com/biz/gATFcG9HTaXJpg"><meta property="og:type" content="restaurant"> <meta property="og:title" content="The Restaurant at Wente Vineyards"> <meta property="og:image" content="http://media2.px.yelpcdn.com/iVSnIs"> ...</head>...</html>
Use Existing Technology Open Graph Protocol: The Metadata Format
• Basic Metadata• Location• Contact Information• Video Data• Audio Data• Objects
• Activities• Businesses• Groups• Organizations
• People• Places• Products and Entertainment• Websites
Use Existing Technology Open Graph Protocol: What is Defined?
The Core Principals
Build for the relevant social & interest graphs
Understand your sharing model and integrate early
Use the work that other companies have invested in
Build for all available outlets
Use emerging social technologies
Build for all available outlets Being Platform Agnostic
• Facebook was a primary outlet for Zynga when they integrated OpenSocial containers.
• They built an abstraction layer on top of every platform. One game, multiple endpoints.
Build for all available outletsExample Technology: OpenSocial
Foundation Specification for Social Applications and Containers.
Shindig is a practical implementation of OpenSocial.
Partuza is a sample social container.
Build for all available outletsOpenSocial View Foundations
Profile FullHome
Build for all available outletsExample Technology: Activity Streams
Defines a social activity
Platform agnostic
Integrated into OpenSocial
The Core Principals
Build for the relevant social & interest graphs
Understand your sharing model and integrate early
Use the work that other companies have invested in
Build for all available outlets
Use emerging social technologies
Use emerging social technologies The early bird gets the worm
• By the time a system is popular, your chances of making headway are slim.
• Dedicate resources to working on and contributing to open systems
Use emerging social technologies How lack of innovation lead to failure in YDN
Failure to move quickly on new technologies.
Security prevented innovation.
Not seen as a technology leader.
Use emerging social technologies
A Poll
Do you or your companies allot time for emerging technologies?
Use emerging social technologies
Authorization Systems – OAuth 1Authorize applications and sites to do something on your behalf.
Signing done on side of integrator.
Lengthy integration process.
Use emerging social technologies
Authorization Systems – OAuth 2
Significantly improved integration time.
Communication over HTTPS
Questions
? Jonathan LeBlancTwitter: @jcleblanc
E-Mail: [email protected]
http://www.slideshare.net/jcleblanc
Special Offer for Webcast Attendees
Visit http://oreilly.com to purchase your copy of Programming Social Applications to save 40% off print book & 50% off ebook with special code 4CAST
Visit http://oreilly.com/webcasts to view upcoming webcasts and online events.