Social networks
                               OpenSocial



Pham Quoc Thinh

Project Manager
SETA:CINQ Vietnam
(thinhpq6034 at setacinq.vn)
Agenda
• Social Networks Overview
• OpenSocial Introduction
• Mixi Platform
Top 10 famous Social Networks
Agenda
• Social Networks Overview
• OpenSocial Introduction
• Mixi Platform
What is OpenSocial?
History
• 5 Corporate Board Members
  – Google, IBM, Jive Software, MySpace, Yahoo!
• First released November 1, 2007, is Google’s
  response to Facebook Developer Platform
• Version 0.8 was released on May 28, 2008
• Version 0.9 was released on April 16, 2009
• Version 1.0 was released on March 15, 2010
Basic Architecture




1. Client requests an application view
2. The container sends social data to the remote server
3. The remote server combines social and application data,
   returning HTML and JavaScript
4. The container sends the content to the client
OpenSocial Core Services
OpenSocial Client APIs
Building JavaScript Applications
JavaScript App Example
• Gadget XML
                     <?xml version="1.0" encoding="UTF-8" ?>
                     <Module>
                      <ModulePrefs title="my first app">
                       <Require feature="opensocial-0.8" />
                      </ModulePrefs>
                      <Content type="html">
   HTML/               <![CDATA[
   JavaScript code      Hello world, this is my first app.
   goes here           ]]>
                      </Content>
                     </Module>
Example to show the owner’s friends
RESTful API
• The base URI for the web service, such as
  http://example.com/resources/
• Data format: JSON, XML, Atom or YAML
• The set of operations supported by the web
  service using HTTP methods (e.g., POST, GET,
  PUT or DELETE).
Access People information
Access Activities information
Access Persistent data
Additional query parameters
Use RESTful API to access protected resource
     of other users – How to manage?
OAuth




• What is it?
• OAuth flow (2-legged & 3-legged)
• Consumer Key & Consumer Secret
What is OAuth?
• Security protocol that allows to share private
  data hosted on x web site with y web site
Terminologies
• Consumer
   Application trying to access protected resource
• Service Provider
   Website or web-service hosting protected resource
• User
   Owner of the protected data
• Protected Resource
   Images, Videos or documents hosted on web site or web-service which are
   protected by the user
• Tokens
   Random string of letters and numbers which is unique. Request Token,
   Access Token
• Scope
   Set of data hosted on service provider that user wants to share with consumer
OAuth context




Jane
OAuth 2-legged & 3-legged
Consumer Key & Consumer Secret




Key: Identify consumer
Secret: Verify consumer signature
OAuth REST Example URL
http://sandbox.orkut.com/social/rest/people/08354253340777199997/@self
?oauth_consumer_key=orkut.com%3A623061448914
&oauth_timestamp=1231537930
&oauth_signature=0h%2FU49KtBplnmnc%2BhDKsDxFPR9%3D
&oauth_signature_method=HMAC-SHA1
&oauth_token=
&xoauth_requestor_id=03067092798963641994&oauth_version=2.0

 POST
/users/28568917/status?oauth_consumer_key=77f44916a5144c97ad1ddc9ec53338cc&oauth_no
nce=8783759987300271273&oauth_signature_method=HMAC-
SHA1&oauth_timestamp=1237853013&oauth_token=8QLGnqFugwmCbIz6pcFbNEMPkG%252FCs
Zrg4fdqIzXpj88FsZaysd7wJ4eBonbvpAG7MOCFhzDjcM1yp6wvO%252BRaeyruy95QdfpFIHQaHvHL
7ak%253D&oauth_version=1.0&oauth_signature=TvlXbt%2FNS0U7SrtUvUfu%2BfJ3kyo%3D
HTTP/1.1
X-HTTP-Method-Override: PUT
User-Agent: Java/1.6.0_12
Host: api.myspace.com
…

status=Hello%20World!
Agenda
• Social Networks Overview
• OpenSocial Introduction
• Mixi Platform
What is mixi?




1st SNS in Japan              20M registered users
5.4M active users/day         275M PV/month (Mobile: 225M, PC: 50M)
Mixi Platform
                •   OpenSocial 0.8
                •   OAuth 2-legged
Mixi Applications
Process flow
PC App
Mobile App
Mobile App (Cont.)
Both PC and Mobile App
Mixi App API
Mixi custom API
• Invite friends
  invite:friends?callback=[escaped URL]
  HTML: <a href="invite:friends?callback=http%3A%2F%2Fexample.com%2Ffoo%2F">Invite</a>

• Get location
  location:gps?url=[escaped URL]
  <a href="location:gps?url=http%3A%2F%2Fexample.com%2Ffoo%2F">Get location</a>

• Send message
  send:message?callback=[escaped URL]
  <form action=“send:message?callback=[URL]&guid=ON" method="POST" >
  <input type="text" name="recipients" value="[Member ID]" />
  <input type="text" name="title" value="[Title]" />
  <input type="text" name="body" value=“[Content]" />
  <input type="submit" value=“Send" />
  </form>
Agenda
• Social Networks Overview
• OpenSocial Introduction
• Mixi Platform
Summarized keywords
•   OpenSocial
•   Gadget XML
•   Javascript API
•   RESTful API
•   Object models (People, Activities, Persitent…)
•   OAuth (2 legged, 3 legged)
•   Mixi (Mobile app, Custom APIs)
Q&A

OpenSocial and Mixi platform

  • 1.
    Social networks OpenSocial Pham Quoc Thinh Project Manager SETA:CINQ Vietnam (thinhpq6034 at setacinq.vn)
  • 2.
    Agenda • Social NetworksOverview • OpenSocial Introduction • Mixi Platform
  • 5.
    Top 10 famousSocial Networks
  • 10.
    Agenda • Social NetworksOverview • OpenSocial Introduction • Mixi Platform
  • 11.
  • 14.
    History • 5 CorporateBoard Members – Google, IBM, Jive Software, MySpace, Yahoo! • First released November 1, 2007, is Google’s response to Facebook Developer Platform • Version 0.8 was released on May 28, 2008 • Version 0.9 was released on April 16, 2009 • Version 1.0 was released on March 15, 2010
  • 15.
    Basic Architecture 1. Clientrequests an application view 2. The container sends social data to the remote server 3. The remote server combines social and application data, returning HTML and JavaScript 4. The container sends the content to the client
  • 16.
  • 17.
  • 18.
  • 19.
    JavaScript App Example •Gadget XML <?xml version="1.0" encoding="UTF-8" ?> <Module> <ModulePrefs title="my first app"> <Require feature="opensocial-0.8" /> </ModulePrefs> <Content type="html"> HTML/ <![CDATA[ JavaScript code Hello world, this is my first app. goes here ]]> </Content> </Module>
  • 20.
    Example to showthe owner’s friends
  • 21.
    RESTful API • Thebase URI for the web service, such as http://example.com/resources/ • Data format: JSON, XML, Atom or YAML • The set of operations supported by the web service using HTTP methods (e.g., POST, GET, PUT or DELETE).
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
    Use RESTful APIto access protected resource of other users – How to manage?
  • 27.
    OAuth • What isit? • OAuth flow (2-legged & 3-legged) • Consumer Key & Consumer Secret
  • 28.
    What is OAuth? •Security protocol that allows to share private data hosted on x web site with y web site
  • 29.
    Terminologies • Consumer Application trying to access protected resource • Service Provider Website or web-service hosting protected resource • User Owner of the protected data • Protected Resource Images, Videos or documents hosted on web site or web-service which are protected by the user • Tokens Random string of letters and numbers which is unique. Request Token, Access Token • Scope Set of data hosted on service provider that user wants to share with consumer
  • 30.
  • 40.
  • 41.
    Consumer Key &Consumer Secret Key: Identify consumer Secret: Verify consumer signature
  • 42.
    OAuth REST ExampleURL http://sandbox.orkut.com/social/rest/people/08354253340777199997/@self ?oauth_consumer_key=orkut.com%3A623061448914 &oauth_timestamp=1231537930 &oauth_signature=0h%2FU49KtBplnmnc%2BhDKsDxFPR9%3D &oauth_signature_method=HMAC-SHA1 &oauth_token= &xoauth_requestor_id=03067092798963641994&oauth_version=2.0 POST /users/28568917/status?oauth_consumer_key=77f44916a5144c97ad1ddc9ec53338cc&oauth_no nce=8783759987300271273&oauth_signature_method=HMAC- SHA1&oauth_timestamp=1237853013&oauth_token=8QLGnqFugwmCbIz6pcFbNEMPkG%252FCs Zrg4fdqIzXpj88FsZaysd7wJ4eBonbvpAG7MOCFhzDjcM1yp6wvO%252BRaeyruy95QdfpFIHQaHvHL 7ak%253D&oauth_version=1.0&oauth_signature=TvlXbt%2FNS0U7SrtUvUfu%2BfJ3kyo%3D HTTP/1.1 X-HTTP-Method-Override: PUT User-Agent: Java/1.6.0_12 Host: api.myspace.com … status=Hello%20World!
  • 43.
    Agenda • Social NetworksOverview • OpenSocial Introduction • Mixi Platform
  • 44.
    What is mixi? 1stSNS in Japan 20M registered users 5.4M active users/day 275M PV/month (Mobile: 225M, PC: 50M)
  • 45.
    Mixi Platform • OpenSocial 0.8 • OAuth 2-legged
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
    Both PC andMobile App
  • 52.
  • 53.
    Mixi custom API •Invite friends invite:friends?callback=[escaped URL] HTML: <a href="invite:friends?callback=http%3A%2F%2Fexample.com%2Ffoo%2F">Invite</a> • Get location location:gps?url=[escaped URL] <a href="location:gps?url=http%3A%2F%2Fexample.com%2Ffoo%2F">Get location</a> • Send message send:message?callback=[escaped URL] <form action=“send:message?callback=[URL]&guid=ON" method="POST" > <input type="text" name="recipients" value="[Member ID]" /> <input type="text" name="title" value="[Title]" /> <input type="text" name="body" value=“[Content]" /> <input type="submit" value=“Send" /> </form>
  • 54.
    Agenda • Social NetworksOverview • OpenSocial Introduction • Mixi Platform
  • 55.
    Summarized keywords • OpenSocial • Gadget XML • Javascript API • RESTful API • Object models (People, Activities, Persitent…) • OAuth (2 legged, 3 legged) • Mixi (Mobile app, Custom APIs)
  • 56.