Programming Social Applications


Social networking has made one thing clear: websites and applications need to provide users with experiences tailored to their preferences. This in-depth guide shows you how to build rich social frameworks, using open source technologies and specifications. You'll learn how to create third-party applications for existing sites, build engaging social graphs, and develop products to host your own socialized experience.

Programming Social Apps focuses on the OpenSocial platform, ...

See more details below
$32.54 price
(Save 27%)$44.99 List Price

Pick Up In Store

Reserve and pick up in 60 minutes at your local store

Other sellers (Paperback)
  • All (17) from $1.99   
  • New (11) from $8.89   
  • Used (6) from $1.99   
Programming Social Applications: Building Viral Experiences with OpenSocial, OAuth, OpenID, and Distributed Web Frameworks

Available on NOOK devices and apps  
  • NOOK Devices
  • NOOK HD/HD+ Tablet
  • NOOK
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac
  • NOOK Study
  • NOOK for Web

Want a NOOK? Explore Now

NOOK Book (eBook)
$19.99 price
(Save 44%)$35.99 List Price


Social networking has made one thing clear: websites and applications need to provide users with experiences tailored to their preferences. This in-depth guide shows you how to build rich social frameworks, using open source technologies and specifications. You'll learn how to create third-party applications for existing sites, build engaging social graphs, and develop products to host your own socialized experience.

Programming Social Apps focuses on the OpenSocial platform, along with Apache Shindig, OAuth, OpenID, and other tools, demonstrating how they work together to help you solve practical issues. Each chapter uncovers a new layer in the construction of highly viral social applications and platforms.

  • Learn how to build applications on top of social containers, and leverage existing user data
  • Map user relationships with a social graph, and extend social links between users
  • Customize your application with user profile information and encourage growth through friendships
  • Build a scalable social application container with OpenSocial and Shindig
  • Dive into advanced OpenSocial topics such as templating and data pipelining methods
  • Protect your container and its users against malicious code
Read More Show Less

Product Details

  • ISBN-13: 9781449394912
  • Publisher: O'Reilly Media, Incorporated
  • Publication date: 9/3/2011
  • Edition number: 1
  • Pages: 518
  • Sales rank: 1,390,920
  • Product dimensions: 7.00 (w) x 9.10 (h) x 1.10 (d)

Meet the Author

Jonathan LeBlanc is a technology evangelist and senior software engineer working with the Yahoo! Developer Network in Sunnyvale, California. As a specialist in open source initiatives in social engagement services, Jonathan works with and promotes emerging technologies to aid in the adoption and utilization of new social development techniques. As a software engineer, Jonathan works extensively with social interaction development on the web, engaging in new methods for targeting the social footprint of users to drive the ideal of an open web.

Read More Show Less

Table of Contents

Contents of This Book;
Using an Open Source Technology Stack;
Conventions Used in This Book;
Using Code Examples;
Safari® Books Online;
How to Contact Us;
Chapter 1: Social Application Container Core Concepts;
1.1 What Is a Social Application Container?;
1.2 Implementing Proprietary Versus Open Standards;
1.3 The Embedded Application: Building in a Black Box;
1.4 Embedded Application Security;
1.5 The External Application: Integrating Social Data Outside the Container;
1.6 Application Views;
1.7 Application Permission Concepts;
1.8 Client-Side Versus Server-Side Applications;
1.9 When Good Applications Go Bad;
1.10 Application Model Case Studies;
1.11 Quick-Start Tips;
Chapter 2: Mapping User Relationships with the Social Graph;
2.1 The Online Social Graph;
2.2 Applying the Real-Life Social Graph Online;
2.3 Sharing Private User Data: Opt-in Versus Opt-out;
2.4 Understanding Relationship Models;
2.5 Relationships Versus Entities;
2.6 Building Social Relevance: Exploring the Facebook Social Graph;
2.7 Defining Entity Likes and Dislikes Through the OpenLike Protocol;
2.8 Conclusion;
Chapter 3: Constructing the Foundation of a Social Application Platform;
3.1 What You’ll Learn;
3.2 Apache Shindig;
3.3 Setting Up Shindig;
3.4 Partuza;
3.5 The OpenSocial Gadget XML Specification;
3.6 Configuring Your Application with ModulePrefs;
3.7 Defining User Preferences;
3.8 Application Content;
3.9 Putting It All Together;
Chapter 4: Defining Features with OpenSocial JavaScript References;
4.1 What You’ll Learn;
4.2 Including the OpenSocial Feature JavaScript Libraries;
4.3 Dynamically Setting the Height of a Gadget View;
4.4 Inserting Flash Movies in Your Gadget;
4.5 Displaying Messages to Your Users;
4.6 Saving State with User Preferences;
4.7 Setting Your Gadget Title Programmatically;
4.8 Integrating a Tabbed Gadget User Interface;
4.9 Extending Shindig with Your Own JavaScript Libraries;
4.10 Putting It All Together;
Chapter 5: Porting Applications, Profiles, and Friendships;
5.1 What You’ll Learn;
5.2 Evaluating OpenSocial Container Support;
5.3 Core Components of the OpenSocial Specification;
5.4 Cross-Container Development and Porting;
5.5 Porting Applications from Facebook to OpenSocial;
5.6 Personalizing Applications with Profile Data;
5.7 Using Friendships to Increase Your Audience;
5.8 Putting It All Together;
Chapter 6: OpenSocial Activities, Sharing, and Data Requests;
6.1 What You’ll Learn;
6.2 Promoting Your Applications with OpenSocial Activities;
6.3 Direct Sharing Versus Passive Sharing;
6.4 Making AJAX and External Data Requests;
6.5 Putting It All Together;
Chapter 7: Advanced OpenSocial and OpenSocial Next;
7.1 What You’ll Learn;
7.2 Data Pipelining;
7.3 OpenSocial Templating;
7.4 A Few More Tags: The OpenSocial Markup Language;
7.5 Localization Support with Message Bundles;
7.6 The OpenSocial REST API Libraries;
7.7 OpenSocial Next: Areas of Exploration;
7.8 OpenSocial and Distributed Web Frameworks;
7.9 Putting It All Together;
Chapter 8: Social Application Security Concepts;
8.1 What You’ll Learn;
8.2 Hosting Third-Party Code Through iframes;
8.3 A Secure Approach: The Caja Project;
8.4 Why Use Caja?;
8.5 Attack Vectors: How Caja Protects;
8.6 Setting Up Caja;
8.7 Cajoling Scripts from the Command Line;
8.8 Running Caja from a Web Application;
8.9 Running Caja with an OpenSocial Gadget;
8.10 Using JSLint to Spot JavaScript Issues Early;
8.11 Playing in the Caja Playground;
8.12 Tips for Working in a Caja Environment;
8.13 A Lighter Alternative to Caja: ADsafe;
8.14 ADsafe Versus Caja: Which One Should You Use?;
8.15 How to Implement ADsafe;
8.16 Putting It All Together;
8.17 Conclusion;
Chapter 9: Securing Social Graph Access with OAuth;
9.1 Beyond Basic Auth;
9.2 The OAuth 1.0a Standard;
9.3 OAuth 2;
9.4 Conclusion;
Chapter 10: The Future of Social: Defining Social Entities Through Distributed Web Frameworks;
10.1 What You’ll Learn;
10.2 The Open Graph Protocol: Defining Web Pages As Social Entities;
10.3 Activity Streams: Standardizing Social Activities;
10.4 WebFinger: Expanding the Social Graph Through Email Addresses;
10.5 OExchange: Building a Social Sharing Graph;
10.6 PubSubHubbub: Content Syndication;
10.7 The Salmon Protocol: Unification of Conversation Entities;
10.8 Conclusion;
Chapter 11: Extending Your Social Graph with OpenID;
11.1 The OpenID Standard;
11.2 Do I Already Have an OpenID? How Do I Sign Up for One?;
11.3 The OpenID Authentication Flow;
11.4 OpenID Providers;
11.5 Bypassing Domain Discovery Errors in OpenID;
11.6 OpenID Extensions;
11.7 Implementation Example: OpenID;
11.8 Common Errors and Debugging Techniques;
11.9 Conclusion;
Chapter 12: Delivering User-Centric Experiences with Hybrid Auth;
12.1 The OpenID OAuth Hybrid Extension;
12.2 When Should I Use OpenID Versus Hybrid Auth?;
12.3 The OpenID OAuth Hybrid Auth Flow;
12.4 Implementation Example: OpenID, OAuth, and Yahoo!;
12.5 Conclusion;
Web Development Core Concepts;
A Brief Tour of Open Source Standards;
Web Service APIs;
HTTP Response Status Codes;
Understanding the Same-Origin Policy;
REST Requests;
Microformats and the Semantic Web;
Installing Subversion (SVN);
Installing Apache HTTP Server;
Setting Up Your PHP Environment;
Setting Up Your Python Environment;

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)