SlideShare una empresa de Scribd logo
1 de 77
Descargar para leer sin conexión
hi5 Platform

Pre-Launch Developer Hackathon
        March 15, 2008
hi5 Platform
  About hi5
  Developer Console
  Integration Points
  Application Discovery
  hi5 OpenSocial Extensions
  Why Develop for hi5?
  Roadmap
  Demo
hi5

The Truly Global Social Network
The Developer Console

  Managing Your Applications
Developer Console
 Add and manage applications
     Refresh metadata and i18n messages
     Manage other developers
     Manage API Keys
     Submit applications to the hi5 directory
     View analytics
 Simple in-line application editor
     Multi-language testing
 hi5 Developer blog feed
Developer Console
Application Editor
Language Preview
Analytics
Anatomy of a hi5 Application

  A seamless user experience within
                hi5
Integration Points
  Preview
  Homepage
     My Applications
  Profile Module
     Draggable, minimizable
     Skins feature allows seamless UI integration
  Canvas Page
     Dedicated page for applications
     Monetization opportunity, allows embedded ad tags
Profile Module
Profile Module Action Links
Profile Navigation Tab
Canvas Page
Preview
Homepage
Application Discovery

Achieving massive distribution
       across the globe
Application Discovery
  Application Directory
      Categories, sorting and filtering
  Application Homepage
      My Friends' applications
      Other recommendations
      Manage your applications
  Viral Channels
      Friend Updates
      Notifications
      Invites
      Email (limited to 1 per user per app per day)
Application Directory
Applications Homepage
Friend Updates
  On both homepage and profile page
  Created using the OpenSocial Activity API (requestCreateActivity)
  Publication not guaranteed but typically high (> 80%)
Notifications
  Sent using the OpenSocial request* API. (requestSendMessage,
  type=NOTIFICATION)
  Limited to 5 per user per app per day
Invites
  All apps have built-in invite flow from profile and canvas pages
Invites
Homepage Alerts
Email Notifications
Limited to 1 per user/app/day
hi5 Features

Extending OpenSocial to meet your
             needs
OpenSocial Feature: hi5
An optional feature that provides access to additional hi5-
specific functionality.
   New data requests (hi5 feature)
      Photos (hi5.fetchAlbumsDataRequest)
      Online Presence (hi5.fetchPresenceRequest)
      Status (hi5.fetchStatusRequest)
   New fields
      Link for friend update media (hi5.ActivityMediaItemField.LINK)
   Much more to come!
OpenSocial Feature: hi5-template
Templating support, tag library, and facility for parameterizing
i18n messages
   <template xmlns:hi5=quot;http://www.w3.org/1999/xhtmlquot;></template>

   <if test=quot;expressionquot;></if>

   <else-if test=quot;expressionquot;></if>

   <else></if>

   <for-each var=quot;variablequot; source=quot;data-sourcequot;></for-each>

   <apply-template name=quot;template-namequot;/>

   <hi5:name person=quot;person-objectquot;/>

   <hi5:profile-pic [id=quot;member-idquot; | person=quot;person-objectquot;] size=quot;thumb | smallquot;/>
   <hi5:message key=quot;propertyquot; [param=quot;valuequot;]*/>
OpenSocial Feature: hi5-lifecycle
Allows developers to declare callback URLs for app installation
and removal

Usage:

<Optional feature=quot;hi5-lifecyclequot;>
  <Param name=quot;installPingUrlquot; value=quot;http://yourserver/handleInstallquot;/>
  <Param name=quot;removePingUrlquot; value=quot;http://yourserver/handleRemovequot;/>
</Optional>
Demo

hi5 Gifts Tutorial
Basic Gifts Tutorial
http://lou.sandbox.hi5.com/friend/apps/entry/webvan.hi5.com/gadgets/gifts.xml


Gifts with i18n
http://lou.sandbox.hi5.com/friend/apps/entry/www.webvan.hi5.com/friend/apps/developer/app/get/xml/5197



Template Demo
http://lou.sandbox.hi5.com/friend/apps/entry/www.sandbox.hi5.com/friend/apps/developer/app/get/xml/5206
Develop With Us

More reasons to develop for hi5
More reasons to develop for hi5...
  A new audience via our unique footprint in Latin America,
  Europe and Asia
     Of the more than 80 million individuals registered with
     hi5, less than a third are also active on the other leading
     social networks, incl. FB, MySpace, Bebo, Friendster
     (comscore)
  OpenSocial!
     Apps can be deeply embedded within hi5, as well as
     easily translated beyond hi5 to other OpenSocial-
     enabled websites
More reasons to develop for hi5...
  $$$
     A dedicated canvas page that can be monetized
     Promotions on the hi5 blog (one developer post/mo –
     rotating among our registered developers with popular
     apps)
  Free Infrastructure from Joyent
     hi5 Developers could win one year of Joyent’s Free
     Accelerator™ scalable, on-demand infrastructure for
     their hi5 app!
     Limited number at launch, more to come
More reasons to develop for hi5...

  Translation Services
     We plan on offering translation support into Spanish to
     the first 100 high-quality applications approved for
     production
     We look forward to offering built-in translation support for
     all hi5 applications in multiple languages in future
     versions of the platform
hi5 Platform Launch
   Several hundred apps in our sandbox that we are reviewing
   and working with developers to finalize.
   White-list style approach to ensure app quality and user-
   centric relevancy (guidelines to be published this week)

March 31st Public Launch
Public rollout begins! We'll launch with as many applications
that have met our guidelines and are ready to go live.
Important Links
Developer site
http://developer.hi5.com - All below links are accessible from here.
Developer Registration
http://sandbox.hi5.com/friend/apps/developer.do
API Documentation
http://api.hi5.com
Application Guidelines
http://www.hi5networks.com/platform/wiki/AppGuidelines
Bug Tracker
http://www.hi5networks.com/platform/report
Discussion Forums
http://www.hi5networks.com/platform/discussion
Questions
The Gifts Tutorial

Step-by-step guide to building an
     OpenSocial app on hi5
Basic OpenSocial XML
<?xml version=quot;1.0quot; encoding=quot;UTF-8quot; ?>
<Module>
   <ModulePrefs title=quot;Gifts Tutorial” author_email=”
lrm718@yahoo.com”>
     <Require feature=quot;opensocial-0.7quot; />
   </ModulePrefs>
   <Content type=quot;htmlquot;>
     <![CDATA[
        Hello, world!
     ]]>
  </Content>
</Module>
Important Meta-data

<ModulePrefs title=quot;Gifts Tutorial”
             author_email=”lrm718@yahoo.com”
             summary=quot;short description for list viewsquot;
             description=quot;long description for previewquot;
             thumbnail=quot;http://yourhost/path_to_120x60_imgquot;
             icon=quot;http://yourhost/path_to_15x15_faviconquot;
>
Initialization

gadgets.util.registerOnLoadHandler(init);

function init() {
   loadFriends();
}
Fetching Friends
function loadFriends() {
    var req = opensocial.newDataRequest();
    req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');
    req.add(req.newFetchPeopleRequest('VIEWER_FRIENDS'),
'viewerFriends');
   req.send(onLoadFriends);
}
Handle the Response
Handle the Response
function onLoadFriends(data) {
  var viewer = data.get('viewer').getData();
  var viewerFriends = data.get('viewerFriends').getData();

    html = new Array();
    html.push('<ul>');
    viewerFriends.each(function(person) {
        html.push('<li>' + person.getDisplayName() + quot;</li>quot;);
    });
    html.push('</ul>');
    document.getElementById('friends').innerHTML = html.join('');
}
Adding App Data
Adding App Data
Adding App Data
Adding App Data

var givenGifts = {};

function giveGift() {
  var nut = document.getElementById('nut').value;
  var friend = document.getElementById('person').value;

  givenGifts[friend] = nut;
  var json = gadgets.json.stringify(givenGifts);

    var req = opensocial.newDataRequest();
    req.add(req.newUpdatePersonAppDataRequest(opensocial.DataRequest.PersonId.VIEWER,
'gifts', json));
    req.send();
}
Displaying App Data
Displaying App Data
Displaying App Data
Displaying App Data
function updateGiftList(viewer, data, friends) {
  var json = data[viewer.getId()]['gifts'];

    if (!json) {
        givenGifts = {};
    }
    try {
        givenGifts = gadgets.json.parse(json);
    } catch (e) {
        givenGifts = {};
    }

    var options = ['a cashew nut', 'a peanut', 'a hazelnut', 'a red pistachio nut'];

    var html = new Array();
    html.push('You have given:');
    html.push('<ul>');
    for (i in givenGifts) {
       if (+(i) > 0) {
           html.push('<li>' + friends[i] + ' received ' + options[givenGifts[i]] + '</li>');
       }
    }
    html.push('</ul>');
    document.getElementById('given').innerHTML = html.join('');
}
Displaying App Data
Displaying App Data
Resizing the Window
In Module element:
<Require feature=quot;dynamic-heightquot;/>

After rendering content:
gadgets.window.adjustHeight()
Creating Activity

function createActivity(title) {
var opts = new Array();


opts[opensocial.Activity.Field.TITLE] = title;
var mediaItems = new Array();
var mediaItem = opensocial.newActivityMediaItem(opensocial.Activity.MediaItem.Type.IMAGE, viewer.
getField(opensocial.Person.Field.THUMBNAIL_URL));


// Add a media item link if supported
if(gadgets.util.hasFeature('hi5') && opensocial.getEnvironment().supportsField(opensocial.Environment.
ObjectType.ACTIVITY_MEDIA_ITEM, hi5.ActivityMediaItemField.LINK)) {
mediaItem.setField(hi5.ActivityMediaItemField.LINK, viewer.getField(opensocial.Person.Field.
PROFILE_URL));
}


var activity = opensocial.newActivity(opts);
Sending Notifications
function sendNotifications(notification, toIds) {
  var params = new Object();
  params[opensocial.Message.Field.TYPE] = opensocial.
Message.Type.NOTIFICATION;
  var message = opensocial.newMessage(notification, params);
  opensocial.requestSendMessage(toIds, message);
}
Sending Notifications
var viewerLink = viewer.getField(opensocial.Person.Field.PROFILE_URL);
var notification = '<a href=quot;' + viewerLink + 'quot;>' + viewer.getDisplayName() +
'</a> gave you a ' + options[nut];
var toIds = {};
toIds.push(friend);
sendNotifications(notification, toIds);
Making Content Requests

function getJournal() {
  gadgets.io.makeRequest('http://api.hi5.com/rest/feed/journal/userId',
     function(response) {
        var data = response.data;
        // do something with data
     },
     {'METHOD' : 'GET', 'CONTENT_TYPE' : 'DOM'}
  );
}
Working With Views
Working With Views
<Content type=“html” view=“profile”>
<![CDATA[
<script src=quot;http://images.hi5.com/images/opensocial/gifts.jsquot;
></script>
<script>
gadgets.util.registerOnLoadHandler(initProfile);
</script>
<div id='main'>
<div id='received’></div>
</div>
]]>
</Content>
Navigating to a View
Navigating to a View

function navToCanvas() {
  var views = gadgets.views.getSupportedViews();
  gadgets.views.requestNavigateTo(views['canvas']);
}
Using Skins
In ModulePrefs:
<Require feature=quot;skinsquot;/>

In Your Application:
function setSkin() {
   document.write('<style type=quot;text/cssquot;>');
   document.write('.main {');
   bgColor = gadgets.skins.getProperty(gadgets.skins.Property.BG_COLOR);
   if(bgColor) {
      document.write('background-color:' + bgColor + ';');
   }
   document.write('}');
   document.wrtie('</style>');
}
Adding the hi5 OpenSocial API

In ModulePrefs:

<Optional feature='hi5'/>
Adding hi5 data requests
var req = opensocial.newDataRequest();

req.add(req.newUpdatePersonAppDataRequest(opensocial.DataRequest.PersonId.VIEWER,'gifts', json));

req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');

req.add(req.newFetchPersonRequest('OWNER'), 'owner');

req.add(req.newFetchPeopleRequest('VIEWER_FRIENDS'), 'viewerFriends');

req.add(req.newFetchPersonAppDataRequest('VIEWER', 'gifts'), 'data');

if(gadgets.util.hasFeature('hi5')) {

    req.add(hi5.newFetchStatusRequest('OWNER'),'ownerStatus');

    req.add(hi5.newFetchPresenceRequest('VIEWER_FRIENDS'),'viewerFriendsPresence');

}

req.send(onLoadFriends);


Documentation on hi5 js objects:
http://www.hi5networks.com/platform/wiki/JsAPI (Work in progress)
hi5 REST API

  api.hi5.com

 Roadmap
  We will add support to access more of our REST API via
  OpenSocial calls
  We will move towards compliance with a standard
  OpenSocial REST API implementation
Sample App Code

http://webvan.hi5.com/gadgets/gifts.js
http://webvan.hi5.com/gadgets/gifts.xml
Hi5 Hackathon Presentation

Más contenido relacionado

La actualidad más candente

How to Webpack your Django!
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!David Gibbons
 
Android JetPack: easy navigation with the new Navigation Controller
Android JetPack: easy navigation with the new Navigation ControllerAndroid JetPack: easy navigation with the new Navigation Controller
Android JetPack: easy navigation with the new Navigation ControllerLeonardo Pirro
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlassian
 
Lightning Components Workshop
Lightning Components WorkshopLightning Components Workshop
Lightning Components WorkshopGordon Bockus
 
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)Kazuyuki Kawamura
 
Liferay Devcon presentation on Workflow & Dynamic Forms
Liferay Devcon presentation on Workflow & Dynamic FormsLiferay Devcon presentation on Workflow & Dynamic Forms
Liferay Devcon presentation on Workflow & Dynamic FormsWillem Vermeer
 
The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)David Gibbons
 
OAuth2 and Spring Security
OAuth2 and Spring SecurityOAuth2 and Spring Security
OAuth2 and Spring SecurityOrest Ivasiv
 
Rails Plugins - Linux For You, March 2011 Issue
Rails Plugins - Linux For You, March 2011 IssueRails Plugins - Linux For You, March 2011 Issue
Rails Plugins - Linux For You, March 2011 IssueSagar Arlekar
 
AtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using nowAtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using nowAtlassian
 
Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android AppsGil Irizarry
 
Using API Platform to build ticketing system #symfonycon
Using API Platform to build ticketing system #symfonyconUsing API Platform to build ticketing system #symfonycon
Using API Platform to build ticketing system #symfonyconAntonio Peric-Mazar
 
Android accessibility for developers and QA
Android accessibility for developers and QAAndroid accessibility for developers and QA
Android accessibility for developers and QATed Drake
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5Ron Reiter
 
SwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsSwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsScott Gardner
 
Using API platform to build ticketing system (translations, time zones, ...) ...
Using API platform to build ticketing system (translations, time zones, ...) ...Using API platform to build ticketing system (translations, time zones, ...) ...
Using API platform to build ticketing system (translations, time zones, ...) ...Antonio Peric-Mazar
 

La actualidad más candente (20)

How to Webpack your Django!
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!
 
Android JetPack: easy navigation with the new Navigation Controller
Android JetPack: easy navigation with the new Navigation ControllerAndroid JetPack: easy navigation with the new Navigation Controller
Android JetPack: easy navigation with the new Navigation Controller
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and ServerAtlasCamp 2015: Connect everywhere - Cloud and Server
AtlasCamp 2015: Connect everywhere - Cloud and Server
 
Lightning Components Workshop
Lightning Components WorkshopLightning Components Workshop
Lightning Components Workshop
 
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
Spring as a Cloud Platform (Developer Summit 2011 17-C-5)
 
Liferay Devcon presentation on Workflow & Dynamic Forms
Liferay Devcon presentation on Workflow & Dynamic FormsLiferay Devcon presentation on Workflow & Dynamic Forms
Liferay Devcon presentation on Workflow & Dynamic Forms
 
The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)
 
Apex & jQuery Mobile
Apex & jQuery MobileApex & jQuery Mobile
Apex & jQuery Mobile
 
Hi5 Open Social
Hi5   Open SocialHi5   Open Social
Hi5 Open Social
 
OAuth2 and Spring Security
OAuth2 and Spring SecurityOAuth2 and Spring Security
OAuth2 and Spring Security
 
Rails Plugins - Linux For You, March 2011 Issue
Rails Plugins - Linux For You, March 2011 IssueRails Plugins - Linux For You, March 2011 Issue
Rails Plugins - Linux For You, March 2011 Issue
 
REST easy with API Platform
REST easy with API PlatformREST easy with API Platform
REST easy with API Platform
 
Api
ApiApi
Api
 
AtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using nowAtlasCamp 2015: Web technologies you should be using now
AtlasCamp 2015: Web technologies you should be using now
 
Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android Apps
 
Using API Platform to build ticketing system #symfonycon
Using API Platform to build ticketing system #symfonyconUsing API Platform to build ticketing system #symfonycon
Using API Platform to build ticketing system #symfonycon
 
Android accessibility for developers and QA
Android accessibility for developers and QAAndroid accessibility for developers and QA
Android accessibility for developers and QA
 
Multi screen HTML5
Multi screen HTML5Multi screen HTML5
Multi screen HTML5
 
SwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsSwiftUI and Combine All the Things
SwiftUI and Combine All the Things
 
Using API platform to build ticketing system (translations, time zones, ...) ...
Using API platform to build ticketing system (translations, time zones, ...) ...Using API platform to build ticketing system (translations, time zones, ...) ...
Using API platform to build ticketing system (translations, time zones, ...) ...
 

Destacado

How to use ReA-A
How to use ReA-AHow to use ReA-A
How to use ReA-Aentama
 
Simulador Realidad Aumentada PRL Incendios y EPIs
Simulador Realidad Aumentada PRL Incendios y EPIsSimulador Realidad Aumentada PRL Incendios y EPIs
Simulador Realidad Aumentada PRL Incendios y EPIsiformalia
 
MODELO DE FORMACIÓN VIRTUAL (eLearning) POR COMPETENCIAS
MODELO DE FORMACIÓN VIRTUAL (eLearning) POR COMPETENCIAS MODELO DE FORMACIÓN VIRTUAL (eLearning) POR COMPETENCIAS
MODELO DE FORMACIÓN VIRTUAL (eLearning) POR COMPETENCIAS CESDE S.A
 
Plataforma elearning compatible con la orden ESS/1897/2013 certificados profe...
Plataforma elearning compatible con la orden ESS/1897/2013 certificados profe...Plataforma elearning compatible con la orden ESS/1897/2013 certificados profe...
Plataforma elearning compatible con la orden ESS/1897/2013 certificados profe...iformalia
 
Tour feature manage members data base
Tour feature manage members data baseTour feature manage members data base
Tour feature manage members data baseCommonFloor.com
 
Diseñe elearning impactante con un mapa de acción
Diseñe elearning impactante con un mapa de acciónDiseñe elearning impactante con un mapa de acción
Diseñe elearning impactante con un mapa de acciónCathy Moore
 
Test forte 소개자료
Test forte 소개자료Test forte 소개자료
Test forte 소개자료onycom1
 
스마트 P형,r형 제안서(12.11.09)
스마트 P형,r형 제안서(12.11.09)스마트 P형,r형 제안서(12.11.09)
스마트 P형,r형 제안서(12.11.09)bds2
 
Moodle: Learning Management System for 21st Century Education
Moodle: Learning Management System for 21st Century EducationMoodle: Learning Management System for 21st Century Education
Moodle: Learning Management System for 21st Century Educationmylearningspace
 
Cómo buscar trabajo con un blog y en las redes sociales [artículo]
Cómo buscar trabajo con un blog y en las redes sociales [artículo]Cómo buscar trabajo con un blog y en las redes sociales [artículo]
Cómo buscar trabajo con un blog y en las redes sociales [artículo]Diego Aguilar Cuenca
 
Agile Project Management for PMP's
Agile Project Management for PMP'sAgile Project Management for PMP's
Agile Project Management for PMP'sVersionOne
 
What is a Content Management System or CMS
What is a Content Management System or CMSWhat is a Content Management System or CMS
What is a Content Management System or CMSSteve Williams
 
CMS (CONTENT MANAGEMENT SYSTEM)
CMS (CONTENT MANAGEMENT SYSTEM)CMS (CONTENT MANAGEMENT SYSTEM)
CMS (CONTENT MANAGEMENT SYSTEM)Aaina Katyal
 

Destacado (13)

How to use ReA-A
How to use ReA-AHow to use ReA-A
How to use ReA-A
 
Simulador Realidad Aumentada PRL Incendios y EPIs
Simulador Realidad Aumentada PRL Incendios y EPIsSimulador Realidad Aumentada PRL Incendios y EPIs
Simulador Realidad Aumentada PRL Incendios y EPIs
 
MODELO DE FORMACIÓN VIRTUAL (eLearning) POR COMPETENCIAS
MODELO DE FORMACIÓN VIRTUAL (eLearning) POR COMPETENCIAS MODELO DE FORMACIÓN VIRTUAL (eLearning) POR COMPETENCIAS
MODELO DE FORMACIÓN VIRTUAL (eLearning) POR COMPETENCIAS
 
Plataforma elearning compatible con la orden ESS/1897/2013 certificados profe...
Plataforma elearning compatible con la orden ESS/1897/2013 certificados profe...Plataforma elearning compatible con la orden ESS/1897/2013 certificados profe...
Plataforma elearning compatible con la orden ESS/1897/2013 certificados profe...
 
Tour feature manage members data base
Tour feature manage members data baseTour feature manage members data base
Tour feature manage members data base
 
Diseñe elearning impactante con un mapa de acción
Diseñe elearning impactante con un mapa de acciónDiseñe elearning impactante con un mapa de acción
Diseñe elearning impactante con un mapa de acción
 
Test forte 소개자료
Test forte 소개자료Test forte 소개자료
Test forte 소개자료
 
스마트 P형,r형 제안서(12.11.09)
스마트 P형,r형 제안서(12.11.09)스마트 P형,r형 제안서(12.11.09)
스마트 P형,r형 제안서(12.11.09)
 
Moodle: Learning Management System for 21st Century Education
Moodle: Learning Management System for 21st Century EducationMoodle: Learning Management System for 21st Century Education
Moodle: Learning Management System for 21st Century Education
 
Cómo buscar trabajo con un blog y en las redes sociales [artículo]
Cómo buscar trabajo con un blog y en las redes sociales [artículo]Cómo buscar trabajo con un blog y en las redes sociales [artículo]
Cómo buscar trabajo con un blog y en las redes sociales [artículo]
 
Agile Project Management for PMP's
Agile Project Management for PMP'sAgile Project Management for PMP's
Agile Project Management for PMP's
 
What is a Content Management System or CMS
What is a Content Management System or CMSWhat is a Content Management System or CMS
What is a Content Management System or CMS
 
CMS (CONTENT MANAGEMENT SYSTEM)
CMS (CONTENT MANAGEMENT SYSTEM)CMS (CONTENT MANAGEMENT SYSTEM)
CMS (CONTENT MANAGEMENT SYSTEM)
 

Similar a Hi5 Hackathon Presentation

hi5 Platform Presentation (Google User Group)
hi5 Platform Presentation (Google User Group)hi5 Platform Presentation (Google User Group)
hi5 Platform Presentation (Google User Group)Lou Moore
 
Open Social Presentation - GSP West 2008
Open Social Presentation - GSP West 2008Open Social Presentation - GSP West 2008
Open Social Presentation - GSP West 2008Patrick Chanezon
 
Hi5 opensocial-code-lab-presentation-1203814696810018-3
Hi5 opensocial-code-lab-presentation-1203814696810018-3Hi5 opensocial-code-lab-presentation-1203814696810018-3
Hi5 opensocial-code-lab-presentation-1203814696810018-3Kunal Mittal
 
OSCON Google App Engine Codelab - July 2010
OSCON Google App Engine Codelab - July 2010OSCON Google App Engine Codelab - July 2010
OSCON Google App Engine Codelab - July 2010ikailan
 
Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Ari Leichtberg
 
Hi5 Opensocial Code Lab Presentation
Hi5 Opensocial Code Lab PresentationHi5 Opensocial Code Lab Presentation
Hi5 Opensocial Code Lab Presentationplindner
 
Ajaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationAjaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationChris Schalk
 
Android Workshop
Android WorkshopAndroid Workshop
Android WorkshopJunda Ong
 
Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdatePatrick Chanezon
 
GSP East 2008: Open Social: Open For Business
GSP East 2008: Open Social: Open For BusinessGSP East 2008: Open Social: Open For Business
GSP East 2008: Open Social: Open For BusinessPatrick Chanezon
 
Creating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn APICreating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn APIKirsten Hunter
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Tech Community
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Tech Community
 
AnDevCon - Tracking User Behavior Creatively
AnDevCon - Tracking User Behavior CreativelyAnDevCon - Tracking User Behavior Creatively
AnDevCon - Tracking User Behavior CreativelyKiana Tennyson
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebPatrick Chanezon
 
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015MobileMoxie
 
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015Suzzicks
 
Fraudpointer - Google Apps integration
Fraudpointer  - Google Apps integrationFraudpointer  - Google Apps integration
Fraudpointer - Google Apps integrationFraudpointer.com
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathonmarvin337
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - MozillaRobert Nyman
 

Similar a Hi5 Hackathon Presentation (20)

hi5 Platform Presentation (Google User Group)
hi5 Platform Presentation (Google User Group)hi5 Platform Presentation (Google User Group)
hi5 Platform Presentation (Google User Group)
 
Open Social Presentation - GSP West 2008
Open Social Presentation - GSP West 2008Open Social Presentation - GSP West 2008
Open Social Presentation - GSP West 2008
 
Hi5 opensocial-code-lab-presentation-1203814696810018-3
Hi5 opensocial-code-lab-presentation-1203814696810018-3Hi5 opensocial-code-lab-presentation-1203814696810018-3
Hi5 opensocial-code-lab-presentation-1203814696810018-3
 
OSCON Google App Engine Codelab - July 2010
OSCON Google App Engine Codelab - July 2010OSCON Google App Engine Codelab - July 2010
OSCON Google App Engine Codelab - July 2010
 
Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08Opensocial Haifa Seminar - 2008.04.08
Opensocial Haifa Seminar - 2008.04.08
 
Hi5 Opensocial Code Lab Presentation
Hi5 Opensocial Code Lab PresentationHi5 Opensocial Code Lab Presentation
Hi5 Opensocial Code Lab Presentation
 
Ajaxworld Opensocial Presentation
Ajaxworld Opensocial PresentationAjaxworld Opensocial Presentation
Ajaxworld Opensocial Presentation
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
Goodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social UpdateGoodle Developer Days Munich 2008 - Open Social Update
Goodle Developer Days Munich 2008 - Open Social Update
 
GSP East 2008: Open Social: Open For Business
GSP East 2008: Open Social: Open For BusinessGSP East 2008: Open Social: Open For Business
GSP East 2008: Open Social: Open For Business
 
Creating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn APICreating Professional Applications with the LinkedIn API
Creating Professional Applications with the LinkedIn API
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
AnDevCon - Tracking User Behavior Creatively
AnDevCon - Tracking User Behavior CreativelyAnDevCon - Tracking User Behavior Creatively
AnDevCon - Tracking User Behavior Creatively
 
Jaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social WebJaoo - Open Social A Standard For The Social Web
Jaoo - Open Social A Standard For The Social Web
 
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
 
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
 
Fraudpointer - Google Apps integration
Fraudpointer  - Google Apps integrationFraudpointer  - Google Apps integration
Fraudpointer - Google Apps integration
 
BarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social HackathonBarCamp KL H20 Open Social Hackathon
BarCamp KL H20 Open Social Hackathon
 
Web APIs & Apps - Mozilla
Web APIs & Apps - MozillaWeb APIs & Apps - Mozilla
Web APIs & Apps - Mozilla
 

Último

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Último (20)

The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Hi5 Hackathon Presentation

  • 1. hi5 Platform Pre-Launch Developer Hackathon March 15, 2008
  • 2. hi5 Platform About hi5 Developer Console Integration Points Application Discovery hi5 OpenSocial Extensions Why Develop for hi5? Roadmap Demo
  • 3. hi5 The Truly Global Social Network
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. The Developer Console Managing Your Applications
  • 10. Developer Console Add and manage applications Refresh metadata and i18n messages Manage other developers Manage API Keys Submit applications to the hi5 directory View analytics Simple in-line application editor Multi-language testing hi5 Developer blog feed
  • 15. Anatomy of a hi5 Application A seamless user experience within hi5
  • 16. Integration Points Preview Homepage My Applications Profile Module Draggable, minimizable Skins feature allows seamless UI integration Canvas Page Dedicated page for applications Monetization opportunity, allows embedded ad tags
  • 23. Application Discovery Achieving massive distribution across the globe
  • 24. Application Discovery Application Directory Categories, sorting and filtering Application Homepage My Friends' applications Other recommendations Manage your applications Viral Channels Friend Updates Notifications Invites Email (limited to 1 per user per app per day)
  • 27. Friend Updates On both homepage and profile page Created using the OpenSocial Activity API (requestCreateActivity) Publication not guaranteed but typically high (> 80%)
  • 28. Notifications Sent using the OpenSocial request* API. (requestSendMessage, type=NOTIFICATION) Limited to 5 per user per app per day
  • 29. Invites All apps have built-in invite flow from profile and canvas pages
  • 32. Email Notifications Limited to 1 per user/app/day
  • 34. OpenSocial Feature: hi5 An optional feature that provides access to additional hi5- specific functionality. New data requests (hi5 feature) Photos (hi5.fetchAlbumsDataRequest) Online Presence (hi5.fetchPresenceRequest) Status (hi5.fetchStatusRequest) New fields Link for friend update media (hi5.ActivityMediaItemField.LINK) Much more to come!
  • 35. OpenSocial Feature: hi5-template Templating support, tag library, and facility for parameterizing i18n messages <template xmlns:hi5=quot;http://www.w3.org/1999/xhtmlquot;></template> <if test=quot;expressionquot;></if> <else-if test=quot;expressionquot;></if> <else></if> <for-each var=quot;variablequot; source=quot;data-sourcequot;></for-each> <apply-template name=quot;template-namequot;/> <hi5:name person=quot;person-objectquot;/> <hi5:profile-pic [id=quot;member-idquot; | person=quot;person-objectquot;] size=quot;thumb | smallquot;/> <hi5:message key=quot;propertyquot; [param=quot;valuequot;]*/>
  • 36. OpenSocial Feature: hi5-lifecycle Allows developers to declare callback URLs for app installation and removal Usage: <Optional feature=quot;hi5-lifecyclequot;> <Param name=quot;installPingUrlquot; value=quot;http://yourserver/handleInstallquot;/> <Param name=quot;removePingUrlquot; value=quot;http://yourserver/handleRemovequot;/> </Optional>
  • 38. Basic Gifts Tutorial http://lou.sandbox.hi5.com/friend/apps/entry/webvan.hi5.com/gadgets/gifts.xml Gifts with i18n http://lou.sandbox.hi5.com/friend/apps/entry/www.webvan.hi5.com/friend/apps/developer/app/get/xml/5197 Template Demo http://lou.sandbox.hi5.com/friend/apps/entry/www.sandbox.hi5.com/friend/apps/developer/app/get/xml/5206
  • 39. Develop With Us More reasons to develop for hi5
  • 40. More reasons to develop for hi5... A new audience via our unique footprint in Latin America, Europe and Asia Of the more than 80 million individuals registered with hi5, less than a third are also active on the other leading social networks, incl. FB, MySpace, Bebo, Friendster (comscore) OpenSocial! Apps can be deeply embedded within hi5, as well as easily translated beyond hi5 to other OpenSocial- enabled websites
  • 41. More reasons to develop for hi5... $$$ A dedicated canvas page that can be monetized Promotions on the hi5 blog (one developer post/mo – rotating among our registered developers with popular apps) Free Infrastructure from Joyent hi5 Developers could win one year of Joyent’s Free Accelerator™ scalable, on-demand infrastructure for their hi5 app! Limited number at launch, more to come
  • 42. More reasons to develop for hi5... Translation Services We plan on offering translation support into Spanish to the first 100 high-quality applications approved for production We look forward to offering built-in translation support for all hi5 applications in multiple languages in future versions of the platform
  • 43. hi5 Platform Launch Several hundred apps in our sandbox that we are reviewing and working with developers to finalize. White-list style approach to ensure app quality and user- centric relevancy (guidelines to be published this week) March 31st Public Launch Public rollout begins! We'll launch with as many applications that have met our guidelines and are ready to go live.
  • 44. Important Links Developer site http://developer.hi5.com - All below links are accessible from here. Developer Registration http://sandbox.hi5.com/friend/apps/developer.do API Documentation http://api.hi5.com Application Guidelines http://www.hi5networks.com/platform/wiki/AppGuidelines Bug Tracker http://www.hi5networks.com/platform/report Discussion Forums http://www.hi5networks.com/platform/discussion
  • 46. The Gifts Tutorial Step-by-step guide to building an OpenSocial app on hi5
  • 47. Basic OpenSocial XML <?xml version=quot;1.0quot; encoding=quot;UTF-8quot; ?> <Module> <ModulePrefs title=quot;Gifts Tutorial” author_email=” lrm718@yahoo.com”> <Require feature=quot;opensocial-0.7quot; /> </ModulePrefs> <Content type=quot;htmlquot;> <![CDATA[ Hello, world! ]]> </Content> </Module>
  • 48. Important Meta-data <ModulePrefs title=quot;Gifts Tutorial” author_email=”lrm718@yahoo.com” summary=quot;short description for list viewsquot; description=quot;long description for previewquot; thumbnail=quot;http://yourhost/path_to_120x60_imgquot; icon=quot;http://yourhost/path_to_15x15_faviconquot; >
  • 50. Fetching Friends function loadFriends() { var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest('VIEWER'), 'viewer'); req.add(req.newFetchPeopleRequest('VIEWER_FRIENDS'), 'viewerFriends'); req.send(onLoadFriends); }
  • 52. Handle the Response function onLoadFriends(data) { var viewer = data.get('viewer').getData(); var viewerFriends = data.get('viewerFriends').getData(); html = new Array(); html.push('<ul>'); viewerFriends.each(function(person) { html.push('<li>' + person.getDisplayName() + quot;</li>quot;); }); html.push('</ul>'); document.getElementById('friends').innerHTML = html.join(''); }
  • 56. Adding App Data var givenGifts = {}; function giveGift() { var nut = document.getElementById('nut').value; var friend = document.getElementById('person').value; givenGifts[friend] = nut; var json = gadgets.json.stringify(givenGifts); var req = opensocial.newDataRequest(); req.add(req.newUpdatePersonAppDataRequest(opensocial.DataRequest.PersonId.VIEWER, 'gifts', json)); req.send(); }
  • 60. Displaying App Data function updateGiftList(viewer, data, friends) { var json = data[viewer.getId()]['gifts']; if (!json) { givenGifts = {}; } try { givenGifts = gadgets.json.parse(json); } catch (e) { givenGifts = {}; } var options = ['a cashew nut', 'a peanut', 'a hazelnut', 'a red pistachio nut']; var html = new Array(); html.push('You have given:'); html.push('<ul>'); for (i in givenGifts) { if (+(i) > 0) { html.push('<li>' + friends[i] + ' received ' + options[givenGifts[i]] + '</li>'); } } html.push('</ul>'); document.getElementById('given').innerHTML = html.join(''); }
  • 63. Resizing the Window In Module element: <Require feature=quot;dynamic-heightquot;/> After rendering content: gadgets.window.adjustHeight()
  • 64. Creating Activity function createActivity(title) { var opts = new Array(); opts[opensocial.Activity.Field.TITLE] = title; var mediaItems = new Array(); var mediaItem = opensocial.newActivityMediaItem(opensocial.Activity.MediaItem.Type.IMAGE, viewer. getField(opensocial.Person.Field.THUMBNAIL_URL)); // Add a media item link if supported if(gadgets.util.hasFeature('hi5') && opensocial.getEnvironment().supportsField(opensocial.Environment. ObjectType.ACTIVITY_MEDIA_ITEM, hi5.ActivityMediaItemField.LINK)) { mediaItem.setField(hi5.ActivityMediaItemField.LINK, viewer.getField(opensocial.Person.Field. PROFILE_URL)); } var activity = opensocial.newActivity(opts);
  • 65. Sending Notifications function sendNotifications(notification, toIds) { var params = new Object(); params[opensocial.Message.Field.TYPE] = opensocial. Message.Type.NOTIFICATION; var message = opensocial.newMessage(notification, params); opensocial.requestSendMessage(toIds, message); }
  • 66. Sending Notifications var viewerLink = viewer.getField(opensocial.Person.Field.PROFILE_URL); var notification = '<a href=quot;' + viewerLink + 'quot;>' + viewer.getDisplayName() + '</a> gave you a ' + options[nut]; var toIds = {}; toIds.push(friend); sendNotifications(notification, toIds);
  • 67. Making Content Requests function getJournal() { gadgets.io.makeRequest('http://api.hi5.com/rest/feed/journal/userId', function(response) { var data = response.data; // do something with data }, {'METHOD' : 'GET', 'CONTENT_TYPE' : 'DOM'} ); }
  • 69. Working With Views <Content type=“html” view=“profile”> <![CDATA[ <script src=quot;http://images.hi5.com/images/opensocial/gifts.jsquot; ></script> <script> gadgets.util.registerOnLoadHandler(initProfile); </script> <div id='main'> <div id='received’></div> </div> ]]> </Content>
  • 71. Navigating to a View function navToCanvas() { var views = gadgets.views.getSupportedViews(); gadgets.views.requestNavigateTo(views['canvas']); }
  • 72. Using Skins In ModulePrefs: <Require feature=quot;skinsquot;/> In Your Application: function setSkin() { document.write('<style type=quot;text/cssquot;>'); document.write('.main {'); bgColor = gadgets.skins.getProperty(gadgets.skins.Property.BG_COLOR); if(bgColor) { document.write('background-color:' + bgColor + ';'); } document.write('}'); document.wrtie('</style>'); }
  • 73. Adding the hi5 OpenSocial API In ModulePrefs: <Optional feature='hi5'/>
  • 74. Adding hi5 data requests var req = opensocial.newDataRequest(); req.add(req.newUpdatePersonAppDataRequest(opensocial.DataRequest.PersonId.VIEWER,'gifts', json)); req.add(req.newFetchPersonRequest('VIEWER'), 'viewer'); req.add(req.newFetchPersonRequest('OWNER'), 'owner'); req.add(req.newFetchPeopleRequest('VIEWER_FRIENDS'), 'viewerFriends'); req.add(req.newFetchPersonAppDataRequest('VIEWER', 'gifts'), 'data'); if(gadgets.util.hasFeature('hi5')) { req.add(hi5.newFetchStatusRequest('OWNER'),'ownerStatus'); req.add(hi5.newFetchPresenceRequest('VIEWER_FRIENDS'),'viewerFriendsPresence'); } req.send(onLoadFriends); Documentation on hi5 js objects: http://www.hi5networks.com/platform/wiki/JsAPI (Work in progress)
  • 75. hi5 REST API api.hi5.com Roadmap We will add support to access more of our REST API via OpenSocial calls We will move towards compliance with a standard OpenSocial REST API implementation