As you have probably noticed, we are introducing an entirely redesigned user interface for hi5.com. This new release was announced for public beta on October 14, and we have been rolling it out to users worldwide since.
 
One of the most requested changes from our users was an easier and faster browsing experience.  We found that the profile "view" we previously supported, which allowed multiple applications to run from profile pages, was having an adverse effect on performance.  So, in this new release, we have replaced the profile view with static images, descriptions, and links to the full "canvas" views of the applications.
 
We have already seen this change has had a positive impact on site usability and performance.  We also believe it will benefit our application partners as well.  Previously, users could only have a maximum of 4 applications running on their profiles, which would occasionally compete with each other.  Now, users can list as many applications in their profile module as they choose, in a much cleaner, more browse-able fashion.

We expect to be fully deployed with the new release this week.




As you may have noticed, hi5 has undergone some changes lately.  We're refocusing on the social entertainment market.  You may have noticed the new hi5 games section and our new virtual currency -- hi5 coins.  There are some great new opportunities in this space for the platform, but first The News.

New Platform Features

There have been a number of changes since our last blog post months ago.  Here's a quick rundown of what's now available:

Full Portable Contacts and Opensocial REST support. 

hi5 always had some great REST support, we've had FOAF and Atom support from the start.   We now fully support Portable Contacts and OpenSocial REST APIs.  These APIs allow external applications to access much more friend data.  New Fields that we support include:

  • About Me
  • Addresses (Partner Only)
  • Books
  • Emails (Partners Only)
  • Ethnicity
  • IMs (Partner Only)
  • Interests
  • Languages Spoken
  • Looking For
  • Movies
  • Music
  • Phone Numbers
  • Relationship Status
  • Religion
  • TV Shows

This is all in addition to our existing set of supported fields including Status, Gender, Birthday, Name and profile photos.  All of these obey the hi5 privacy settings.  Generally this means if data is public we will return it, if it's friends only we'll return it if both users have the same application.  Some sensitive data we are currently only offering to Partners that are willing to align privacy policies.  Contact platform-help@hi5.com for more details.

Here are some examples with public data to get you started:

http://api.hi5.com/social/rest/people/87628233/@self
http://api.hi5.com/social/rest/people/87628233/@self?format=xml
http://api.hi5.com/social/rest/people/87628233/@self?format=atom
http://api.hi5.com/social/rest/people/87628233/@self?fields=name,interests,aboutMe,status
http://api.hi5.com/social/rest/people/87628233/@self?filterBy=topFriends


Opensocial 0.9 -- Messaging APIs and more!

The Opensocial 0.9 specification was recently approved.  At hi5 we played a major part in this process, including submitting a new Opensocial Messaging API.  The messaging API allows for access to all the different types of hi5 messages via REST.  You'll find support for public messages (profile comments), private messages (inbox and bulk), sent messages, friend requests, photo comments, and notifications.  Depending on the privacy settings your app can access this data.  You can easily get an overview of all messages collections with their total and new message count.  For partner applications we also allow adding messages, accepting friend requests, marking messages as read and deleting messages.

In addition to this we've already implemented a number of the items for 0.9 in draft format for the hi5 container.  You can access these by requiring the feature "opensocial-0.9" in your XML definition file.  Note that some of these new features may be unstable.  Some great new 0.9 features that you can try are:

  • New and improved  Lightweight Javascript API
  • Templates and OSML
  • Simplified App Data APIs

OAuth Support

For some time hi5 has allowed access to our APIs with a Hi5AuthToken cookie or an st parameter on the query string.  There's now a better way to do this, OAuth.  We now support both two-legged OAuth and three-legged OAuth.  This means you don't have to squirrel away tokens and use custom calling code.  Instead you can just use OAuth.

Two-Legged OAuth support is available in many of the popular OpenSocial REST libraries. It relies upon the user authorizing your application in hi5 prior to you making a request.  To ascertain this is fairly easy, just use a "makeRequest" call to send the userid to your backend server.

Three-legged OAuth is more complex, but allows you to authorize access directly from your remote web site, desktop client or mobile client.  In this case you configure your software to request a token, you then direct the user to an authorization page and then control is returned to your software.

To use OAuth you need to know the following important pieces of information:

  • Consumer Key: Use your application ID, which is a number
  • Consumer Secret: Use the hi5 API key
  • Request Token URL: https://api.hi5.com/oauth/requestToken
  • Authorize URL: https://login.hi5.com/oauth/authorize
  • Access Token URL: https://api.hi5.com/oauth/accessToken
Once you've authenticated you can then make requests to http://api.hi5.com/social/rest/* endpoints with ease.

The Future

There are a number of exciting features coming to the hi5 platform in the future, especially as it relates to our new Social Entertainment focus.  One of the first new features we will support is an OpenSocial-based Virtual Currency API.  This will allow OpenSocial Applications to redeem hi5 coins and open up a new monetization channel.  And since it's an open standard your redemption code will work on hi5, 51.com and other containers that implement the specification.  Currently we are working through a beta test with selected partners.  Stay tuned for more on this initiative and other APIs relating to Social Entertainment.



We've been busy working on the hi5 platform.  Recent releases include:

  • Flash 9/10 Compatibility -- With Adobe's recent release of Flash 10 we noticed a number of security related problems.  We've updated our OpenSocial server to send the correct headers for proxied flash content.  The API server now has a new crossdomain.xml that will allow for the same level of compatibility as Flash 9.
  • XRDS Discovery -- You can find our new XRDS-Simple data on http://sandbox.hi5.com.  More about this in the near future.
  • LifeCycle Pings -- We now send user specified parameters with each ping.
  • OpenSocial Templates -- See http://www.opensocial-templates.org/ for more info.
  • Other Bug Fixes -- Problems with multipart/form submissions and Accept header issues are now solved.

 OpenSocial Developers please take note of the following planned changes:

  • Apps in the gallery will soon be sorted by engagement.  Previously we randomly sorted the top 100 Applications in the category.
  • Profile pages will only show the users top five applications.  Each user can choose which five will appear.
Please feel free to send us feedback on these changes to platform-help@hi5.com
We have now finished the migration of the Platform in production to OpenSocial v0.8. We'd like to thank the developers who helped test 0.8 while it was in beta, as well as those who provided us detailed feedback on the scaling issues we encountered in production last week. We are looking forward to a new wave of application and feature launches on the 0.8 platform. We recently posted an entry highlighting all of the key features of 0.8, the RESTful API being the most significant addition to this standard. Apart from the tremendous contributions to product testing by our QA team and third party developers, our team has also tested 0.8 against Google's OpenSocial compliance application and we're happy to say that it is compliant with most of the recommended test cases.

Additionally, our platform team has been working diligently at responding to your feature requests. This release brought other features into production, some of which had been "in the wild" on our beta servers for about a month and which some developers have already started using:

1. A RESTful API for accessing historical statistics for your apps
2. More attributes in the Person.Field data object
3. A Photo Upload API, auto documented at http://api.hi5.com
4. Status update API that allows you to set the user status 

In line with our earlier policies regarding notifications, we are also instituting similar dynamic limits on the total number of emails that an application can send per day. We did this because after adding notifications limits, we saw an improvement in the perception of applications among our users. We will continue to look into ways of striking a balance between user experience for our members and third party developer needs.

If you'd like to ask questions or leave us comments, feel free to send us an email at platform-help@hi5.com, to post on the online forum and to participate in discussions with other developers on the IRC channel. We're dedicated to continuing our efforts to enhance the platform for our members and partners.

Reaching a Wider Audience: Community-based Translations for Applications

Hi5 has a large audience in Spanish-speaking markets, Thailand, Romania, Portugal, and many other countries. How much more popular would your application be if it supported Spanish, Thai, Romanian, Portuguese and 50 other languages?

To simplify the translation process for applications, hi5 has connected its OpenSocial development platform to its community-based translation system. For the past six months hi5 has been building teams and language tools to translate the hi5 website into 25+ new languages; now, that same community and toolset is available to OpenSocial developers to translate the applications.

Translations are performed only by users of the application who are members of the hi5 translation team for that language. In addition, developers have complete control over all translations translated text within the system, and may delegate this editorial responsibility to specific translators or reviewers.

Translators have access to the hi5 language tools on the application canvas page. Translations take place in context, directly adjacent to the functioning application.

Developers can preview the translations, perform any required edits, and then publish, making the translation available to all hi5 members. Furthermore, as a developer, you can download the translated text for deployment in any OpenSocial compliant container.

Getting Started

The translation process begins by internationalizing (i18n) the application. The OpenSocial specification is i18n-ready and hi5 provides Internationalization guidelines to help you with this step.

Once the application is internationalized, developers will Reload the application and select to Receive hi5 translations. Developers need to set the application's Default Locale to indicate the language used in the default message bundle. This loads the application's text into the translation system and makes it available to the translators who use the application.

Although the translation teams are most accustomed to translating from English to other languages, as is the case on the hi5 website, the translation tool for applications supports translation from any source language as defined in the hi5 system. This permits maximum flexibility in development and translation.

A new tab has been added to the Development Console, showing the translators' progress. As translations become approved by the community, those languages will appear atop the list with messages indicating New Translations available for download. Exporting the translated message bundle, updating the app xml and reloading the app publishes the new translations.

Additional Resources

For more information on the translation system and processes now available to you, please refer to the following documents:

Following close behind the release of the OpenSocial 0.8 specification two months ago, we have been hard at work implementing it, and are happy to announce that a beta release is now available to developers. We will be rolling this out to production in the first week of September and would like to give developers ample opportunity to test out our latest implementation thoroughly. The 0.8 version of the specification is completely backwards compatible and we expect that all applications developed on 0.7 will continue to work after the migration.

Possibly the most exciting development in 0.8 is that containers are now required to implement a REST based API according to the RESTful API specification. We hope our implementation will enable developers to build richer server-side, mobile and desktop applications. The complete 0.8 version specification and Release Notes are also available on code.google.com and are a useful read for OpenSocial developers.

To test your application on 0.8, please login to betasandbox.hi5.com with your hi5 account and create an application on the developer console --- you can use your existing application or write a new one. Applications running on betasandbox will access the 0.8 API.

If you find issues please create a ticket using the version "Beta 0.8" in the Developer Center. Please let us know at platform-help@hi5.com if you have any questions.

The Statistics API that we announced two weeks ago is available on sandbox. Please use the endpoints described in the earlier post, prefixed with http://sandbox.hi5.com/rest. For example, for the metrics/daily endpoint, you would enter http://sandbox.hi5.com/rest/metrics/daily?<parameters>.

We look forward to seeing the API being used. Feel free to send us feedback -- we will also propose this shortly as an addition to the OpenSocial REST API specification which will present the community with an additional forum to discuss the API.

The hi5.template library is a browser side, Javascript library which enables you to fuse Javascript data and logic into your HTML. It simplifies writing localized apps by providing a message resource tag:

<os:message key=”resource” />
which eliminates the need to build messages and HTML with Javascript. To ease transitioning to language resource files, you can provide the message resource directly in the message tag. For example:

<os:message key=”received_gift” gift=”pizza” friend=”Joe”>You received a ${gift} from ${friend}</os:message>
Also, using the hi5.template library allow future compatibility with our user generated content inline-translation tool. The template is straightforward, with only a few conventions:

  1. ${} for variable substitution
  2. <for-each> for iteration
  3. <if>/<else> for conditional logic, and
  4. <os:message> for gadget resource localization.
There is also a <set> tag for storing the output of tags, and <os:name> and <os:profile-pic> convenience tags.

Check out the wiki for more details on the template library: where to download it, how to specify it within your application and the format for various tags.


The hi5 Platform Team is continuing to make changes that help developers better understand the growth trends of their products. To this end, we are making application statistics accessible via the API server. Before making this public, we would like your feedback on the design of the API. Please read through these specs and let us know what you think of them!

Developers will have to authenticate themselves by creating an authToken — any of the developer accounts associated with an application can be used to access the stats for an application. Statistics can be generated for all or some of the applications owned by the developer account requesting the data.

The API has three endpoints:

  1. metrics/daily: These are daily stats, not uniq'ed per user. You can query the data for a range of dates, not exceeding 30 days. Requests for more than 30 days will be truncated to 30 days, starting at the start date.
  2. metrics/dailyuniques: These are the same type of stats as returned by metrics/daily, but accounting for uniques. This means that if a single user views a canvas page on your application more than once, it will count as just 1 unique canvas page view in these metrics.
  3. metrics/total: These are total stats calculated for the applications, aggregated since your application launched.

The input parameters are supplied in the URL and the parameters and the acceptable values are all case sensitive. Only the Hi5AuthToken parameter is required

Parameters

  1. metric: If this parameter is not specified, then all available metrics are displayed. You can request the following metrics with this parameter:
    1. install: Total number of installs
    2. remove: Total number of removes. You will have to subtract this from the total number of installs to get the net installs of your application for the applicable time period.
    3. view_profile: Calls to the profile module
    4. preview: Calls to the preview module
    5. canvas: Calls to the canvas module
    6. block: Block requests generated in response to emails and notifications generated by your application_,_ and on the My Applications page.
    7. api_request: API requests sent to our API servers by your application
    8. report_abuse: Notifications generated by your application marked as spam
    9. activity_requested: Requests to generate a Friend Update
    10. activity_sent: Friend Update requests fulfilled
    11. invite_requested: Friend Invite requests generated. Note that this counts a request containing multiple friends as one request
    12. invite_sent: Friend Invite requests fulfilled
    13. notification_requested: Notification API requests made to the API servers
    14. notification_sent: Notification API requests fulfilled. Note that when an API request is fulfilled, not all the recipients in the API request might receive the request, as some might already have received the limit of per-recipient notifications allowed.
    15. all: All of the above
  2. context: The context breaks up each statistic in the metric parameter based on the origin of the corresponding action. Note that not all contexts are valid for all actions — for example, blocks can only occur in the invite, myapps and notification contexts, by definition. If context is not specified then breakdown by context will not be displayed. The possible values of context are:
    1. activity_stream: From all links in a Friend Update, if that link is on a user's home page, or from a Friend Update's "More" link if the Friend Update is being viewed on the logged-in user's or someone else's profile.
    2. apphome_friend: From the My Applications page of the currently logged-in user, when the user clicks on a recommended application (currently, applications installed by a user's friends)
    3. apphome_owner: From the My Applications page of the currently logged-in user, when the user clicks on one of their own applications (currently, user's recent applications)
    4. gallery: From the hi5 Application Gallery
    5. homepage: From the homepage applications box at the top right of the page
    6. invite: From a friend invite
    7. myapps: From the Manage Applications page
    8. notification: From a notification
    9. other_profile: From the profile of someone other than the currently logged-in user
    10. own_profile: From the profile of the currently logged-in user
    11. profilenav: From the View More link on the Profile module, and from the Applications drop down in the navigation bar at the top of the Profile page
    12. unknown: From an unknown context, usually generated when the user comes from a link placed in a Profile module or Friend Update by the application (Note that this number is inflated because invites are not being tracked correctly; this will be fixed soon.)
    13. all: All the contexts applicable to a given action
  3. start and end: The start and end dates, respectively, in YYYY-MM-DD format. The dates must be "consistent," that is, the end date cannot precede the start date, and they must both be valid calendar dates. A range greater than 30 days generates an error. If no dates are specified then data for the latest available timestamp (typically, for "yesterday") is displayed.
  4. Hi5AuthToken: The auth token generated via the REST API for your API key and login information.
  5. api_key: The acceptable values are the API keys of the applications owned by the developer making the request; API keys for other applications will generate an error and return no statistics. To return statistics for more than one application (but not all applications) owned by you, specify the api_key parameter multiple times. If no api_key is specified then the one that was used to generate the auth token will be used.

To begin, we will not rate limit this API and expect that the volume will be no higher than once a day per application. Improper use of this API will lead to the offending API keys being blocked from access to this functionality.

We look forward to your feedback. Thanks!


The hi5 Platform Team will be holding Office Hours on the hi5dev IRC channel, twice a week, starting this Thursday. The hours are as follows (all times in PST, which is GMT-7 or GMT-8, depending on the time of the year):

  • Tuesdays, 9am - 11am
  • Thursdays, 1pm - 3pm
We are very grateful to developers for the lightning-fast feedback we got via this channel during the early days of the platform, and hope to maintain that spirit of interactiveness as we continue to grow. Please let us know if you have other time preferences and we can consider refining this as we go along.

Instructions for access to the hi5dev channel are available at the hi5 Developer Center. During these hours, at least one member from the team will be logged into the chat room. The Tuesday morning hours are to allow developers from Asia to be able to correspond with us at a time that's reasonable on both sides of the globe.

We were inspired to do this by a similar idea that the Google OpenSocial team had announced quite a while ago --- we would like to give credit where its due.

Recent Comments

Close