OpenSocial CS 195.35: Survey of Contemporary Technologies.

Slides:



Advertisements
Similar presentations
MySpace Developer Platform Dive Into OpenSocial Maxwell Newbould Development Manager OpenSocial Container Team, MySpace Seattle.
Advertisements

Opensocial Flash/Flex Client Library Project:
A Beginner's Guide to OpenSocial All my own work by Tom Natt.
Web Toolkit Julie George & Ronald Lopez 1. Requirements  Java SDK version 1.5 or later  Apache Ant is also necessary to run command line arguments 
JavaScript and AJAX Jonathan Foss University of Warwick
Using Evernote and Google Docs in your web or mobile application (and potentially Dropbox and Skydrive) By Peter Messenger Senior Developer – Triple Point.
Extending JIRA Rachel Wright July 15, 2014 See slide “Notes” section for commentary and talking points.
© 2010 Delmar, Cengage Learning Chapter 1 Getting Started with Dreamweaver.
1 Chapter 5 – Handling HTML Controls in Web Pages spring into PHP 5 by Steven Holzner Slides were developed by Jack Davis College of Information Science.
Project 1 Introduction to HTML.
Engaging networks can help you to grow your online community Outreach top 10.
Electrical and Computer Engineering Vitaly Gordievsky Alex Trefonas Scott Richard Matt Beckford Final Project Review.
Introduction to Java Lab CS110A – Lab Section 004 Instructor: Duo Wei.
World Wide Web1 Applications World Wide Web. 2 Introduction What is hypertext model? Use of hypertext in World Wide Web (WWW) – HTML. WWW client-server.
Voice Mail for social networks Maxim Kogan Roey Ben Haim Supervisor Assaf Solomovitch Lab Chief Eng. Ilana David Software Systems Lab Department of Electrical.
Open Social A Quick Introduction and Tutorial. What is Open-Social in a Nutshell? Open-Social provides a API specification for social networking sites.
Browser and Basics Tutorial 1. Learn about Web browser software and Web pages The Web is a collection of files that reside on computers, called.
1st Project Introduction to HTML.
1 Web Services Visual C# 2008 Step by Step Chapter 30.
1 Agenda Overview Review Roles Lists Libraries Columns.
Toward an OpenSocial Life Science Gateway Wenjun Wu, Michael E. Papka, Rick Stevens.
HTML 1 Introduction to HTML. 2 Objectives Describe the Internet and its associated key terms Describe the World Wide Web and its associated key terms.
Chapter ONE Introduction to HTML.
Sys Prog & Scripting - HW Univ1 Systems Programming & Scripting Lecture 15: PHP Introduction.
HTTP: cookies and advertising Concepts to cover:  web page content (including ads) from multiple site: composition at client  cookies  third-party cookies:
IT 210 The Internet & World Wide Web introduction.
Adobe Dreamweaver CS3 Revealed CHAPTER ONE: GETTING STARTED WITH DREAMWEAVER.
SUNY Polytechnic Institute CS 490 – Web Design, AJAX, jQueryAngularJS AngularJS is a client-side JavaScript Framework for adding interactivity to HTML.
JavaScript & jQuery the missing manual Chapter 11
OpenSocial ANATOMY AND LIFE CYCLE Paul Lindner, Architect, Hi5 Networks November 27th, 2007.
JMU Outlook, Messenger, and Skydrive An easier way to upload and store files to share.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Design Extensions to Google+ CS6204 Privacy and Security.
About Dynamic Sites (Front End / Back End Implementations) by Janssen & Associates Affordable Website Solutions for Individuals and Small Businesses.
ASP.NET 2.0 Chapter 5 Advanced Web Controls. ASP.NET 2.0, Third Edition2 Objectives.
ODK Collect Jonathon Tai, EERI.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
In addition to Word, Excel, PowerPoint, and Access, Microsoft Office® 2013 includes additional applications, including Outlook, OneNote, and Office Web.
06/10/2015AJAX 1. 2 Introduction All material from AJAX – what is it? Traditional web pages and operation Examples of AJAX use Creating.
HTML, XHTML, and CSS Sixth Edition Chapter 1 Introduction to HTML, XHTML, and CSS.
Web Indexing and Searching By Florin Zidaru. Outline Web Indexing and Searching Overview Swish-e: overview and features Swish-e: set-up Swish-e: demo.
OpenSocial Kevin Marks Chris Chabot Agenda Introduction - What is OpenSocial Building an OpenSocial Application Best Practices Kinds of container Becoming.
1 Tradedoubler & Mobile Mobile web & app tracking technical overview.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
CPSC 203 Introduction to Computers Lab 23 By Jie Gao.
Shay Sheinfeld, Erez Kastel, Inbal Dolev Google Workshop 2008 Presenting:
Activating Clarity  Activating Clarity  Activation  Online Activation  Fax Activation  Review and Verify Activation and License Terms  Updating.
SYST Web Technologies SYST Web Technologies Databases & MySQL.
Putting it all together Dynamic Data Base Access Norman White Stern School of Business.
Active Server Pages  In this chapter, you will learn:  How browsers and servers interacted on the Internet when the Internet first became popular 
Peter Laird. | 1 Building Dynamic Google Gadgets in Java Peter Laird Managing Architect WebLogic Portal BEA Systems.
The OpenSocial API CS : Survey of Contemporary Technologies.
Facebook is a social utility that connects you with the people around you. Use Facebook to…  Keep up with friends and family  Share photos and videos.
FriendFinder Location-aware social networking on mobile phones.
FriendFinder Location-aware social networking on mobile phones.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
HTML Concepts and Techniques Fifth Edition Chapter 1 Introduction to HTML.
John Maver (978)
FriendFinder Location-aware social networking on mobile phones.
Chapter 1 Introduction to HTML, XHTML, and CSS HTML5 & CSS 7 th Edition.
Understanding JavaScript and Coding Essentials Lesson 8.
IN THIS LESSON WE WILL REVIEW THE STRUCTURE OF THE INTERNET AND HOW BROWSERS ASSEMBLE WEBSITES BASED ON INSTRUCTIONS THEY RECEIVE FROM SERVERS. Internet.
REST API Design. Application API API = Application Programming Interface APIs expose functionality of an application or service that exists independently.
111 State Management Beginning ASP.NET in C# and VB Chapter 4 Pages
HTML PROJECT #1 Project 1 Introduction to HTML. HTML Project 1: Introduction to HTML 2 Project Objectives 1.Describe the Internet and its associated key.
Activities in OpenSocial CS : Survey of Contemporary Technologies.
Using the Personal Image Photo Library
Project 1 Introduction to HTML.
Latest Updates on BlackHawk Mines Music : Privacy Policy
Data Virtualization Tutorial: JSON_TABLE Queries
Exploring Microsoft Office 2013 Word Comprehensive
Presentation transcript:

OpenSocial CS : Survey of Contemporary Technologies

Outline OpenSocial concepts overview  Containers, people, relationships, activities, viewers, owners, friends Hello world application  Demo: installing an application in a container Requesting social data  Using the OpenSocial namespace  Demo: owner and viewer  Demo: listing friends

OpenSocial concepts What is OpenSocial?  OpenSocial is an API that enables the development of applications within a social networking environment  First version released in 2007 (version 0.9 released early this year) Based on HTML and JavaScript Code can be used across multiple social websites  Supported in several containers: Orkut, MySpace, hi5, friendster, and many others

OpenSocial concepts People: users in a social networking environment Relationships: friends and connections between people Activities: actions that users carry out (that they want friends to know about) OpenSocial apps: applications/gadgets written using the OpenSocial API through which users can interact

Key namespaces opensocial: defines classes that represent key objects and data in a social networking environment (persons, activities, messages) and functions that facilitate object creation and social data requests gadget: defines classes and functions that facilitate remote data requests and container- specific user interface features

Roles Viewer: user who logged in, who may be viewing another person’s profile Owner: user who owns the profile Friends: users who have been added as friends (of the viewer or owner) within the container

Creating your first social app What you need  A container (social networking website) that supports OpenSocial Create an account (or a sandbox/developer account, as necessary)  A webhost where you can store your application code in Should be publicly accessible, or accessible from the container

Creating your first social app You will need to create an XML file that specifies your gadget (social app) Hello-world gadget: <![CDATA[ Hello world, this is my first app. ]]> HTML/ JavaScript code goes here

Demo: friendster Relatively straightforward container to use: apps can be installed and immediately executed without special developer or sandbox accounts Steps:  Upload gadget (XML file) to a website  Log in to friendster, then go to friendster.com/developer to install application  Execute the application (your friends may execute or install the applications as well)

Simple lab exercise Install the helloworld app  Gadget already uploaded in Installation steps  Go to friendster.com/developer (after logging in)  Select the “Get API Key” tab  Fill in gadget details and other requirements, then click on “Save”  Click on “Test App”, then click on “Add App” Ask a friend to visit your profile

Requesting social data Steps:  Create an opensocial.DataRequest object  Add request items to the object  Send the object to the container, specifying a callback function Example: requesting owner data function request() { var req = opensocial.newDataRequest(); req.add( req.newFetchPersonRequest( opensocial.IdSpec.PersonId.OWNER), 'get_owner' ); req.send(response); };

opensocial.DataRequest.add() add(request, opt_key) Adds a request item to fetch or update data from the server Parameters  request: specifies which data to fetch/update  opt_key: string that the generated response maps to (for future retrieval from the callback function)

Request items There are functions under opensocial.DataRequest that create request items newFetchPersonRequest:  Creates an item to request person data for the given person  Returns a Person object newFetchPeopleRequest:  Creates an item to request friends from the server  Returns a Collection object

opensocial.DataRequest.send() send(callback_function) Sends the data request to the server in order to get a data response Parameter  callback_function: The function to call with the data response generated by the server

Call back function example You need a Javascript function through which the response will be processed function response(dataResponse) { var owner = dataResponse.get('get_owner').getData(); var html = ' Owner name:' + owner.getDisplayName() + ' '; document.getElementById('msg').innerHTML = html; }; The last line identifies the html code generated  To be inserted inside a div tag: Key specified when the request was made

Putting it all together function request() { var req = opensocial.newDataRequest(); req.add( req.newFetchPersonRequest( opensocial.IdSpec.PersonId.OWNER), 'get_owner' ); req.send(response); }; function response(dataResponse) { var owner = dataResponse.get('get_owner').getData(); var html = ' Owner name:' + owner.getDisplayName() + ' '; document.getElementById('msg').innerHTML = html; }; gadgets.util.registerOnLoadHandler(request);

Demo Install the ownerviewer social app in friendster  Gadget already uploaded in Execute it Ask one of your friends in that container to visit your profile (to execute that application) and observe the output Under what circumstances will owner be different from viewer when your application executes?

Request items v0.8 People:  newFetchPersonRequest  newFetchPeopleRequest Activities:  newFetchActivitiesRequest Application Data: (persistence)  newFetchPersonAppDataRequest  newUpdatePersonAppDataRequest  newRemovePersonAppDataRequest

Request items v0.9 People:  newFetchPersonRequest  newFetchPeopleRequest Activities:  newFetchActivitiesRequest Application Data  newFetchPersonAppDataRequest  newUpdatePersonAppDataRequest  newRemovePersonAppDataRequest Media Items  newCreateMediaItemRequest  newFetchMediaItemsRequest  newUpdateMediaItemRequest Albums  newCreateAlbumRequest  newFetchAlbumsRequest  newUpdateAlbumRequest  newDeleteAlbumRequest

Listing friends Take home exercise Sign up to a free webhost service, and upload listfriends.xml (available via moodle) Install the gadget via friendster Try other containers (MySpace, Orkut, etc)

What’s next? Exploring and understanding other containers and development environments Other features of the API  Persistence: storing app data  Activities: generating app-related updates to be viewed by friends  Third party requests: communicating with other servers