Programming Social Applications (Building Viral Experiences with OpenSocial, OAuth, OpenID, and Distributed Web Frameworks)