Over the past week and a half, Facebook has posted to the Developers Blog announcing several new tools, protocols and capabilities for developers. These include
- Better ways to submit bugs and track the API heath of the Platform,
- Changes to the DealSpot and Games Dashboard Featured Status incentives for developers who have integrated Facebook Credits
- A migration system where breaking changes are only pushed on the first day of the month
- Support for OAuth 2.0 with XMPP
- The deprecation of Auth 1.0 and the FB.Data call
- The ability to manage Events and upload high-resolution photos via the Graph API
- A more direct way for games to handle link clicks on the canvas page
- The option to detect and control flash object visibility in apps
New Platform Tools
The Facebook Platform Live Status
page has been redesigned and augmented
with new functionality. Developers now see the current health of the Platform and when the latest JSON push was completed, followed by a list of the five latest Platform issues and graphs of the average API response time and error count.
Additionally, developers can hook their apps up to a feed of the JSON pushes
so they can set their apps to begin automated testing once a push has completed. This will help developers ensure their tests are being performed on the latest code.
Facebook is replacing the Bugzilla bug tracking system
developed by Mozilla with its own system that won’t require a separate log in. Developers will first see the top 20 trending bugs and options to search for, browse, and filter bugs by phrase or tag. Once devs have found a report about their bug they can subscribe to email updates, notify Facebook they’re experience it too, discuss workaround with other developers.
In order to speed up the resolution process, devs must include repro steps including IDs and access tokens in order to add a new bug report. Bugzilla is now read-only so devs should begin using the new Bugs tool
. Slow bug resolution has been one of the biggest problems with the Platform. By developing a system that reduces the number of redundant bug reports and relieves the Facebook team from having to reach out and ask for repro steps, the site may be able resolve bugs more efficiently.
High Level Changes
On October 14th, Facebook will open to all Facebook Credits developers several of the special incentive features that were initially used to encourage early adoption of Credits as a currency and payment method.
Developers will gain the ability to target specific demographics with DealSpot, a TrialPay-developed system that shows in-game icons leading to offers users can complete to earn Facebook Credits. DealSpot presents offers to users that might not have visited the offer wall, so developers looking to augment sales of virtual goods with another revenue stream should strongly consider activating the feature.
All developers will also gain access to broad category targeting, which lets them target Facebook Ads to users based on their interest in anything related to a selected topic. Facebook actually began testing this feature in April as an alternative to targeting specific keywords. The ability to target all social gamers rather than just fans or the Pages of certain games, Broad Category Interest targeting could help developers attain more new customers with less effort spent on ad targeting.
Facebook’s free marketing system known as Games Dashboard Featured Status and Social Placements will also become available to developers of games integrated with Credits. Games eligible for the promotions are “evaluated on a case by case basis, such as for game quality, genre and new functionality”. The system will be especially helpful to developers that are building great games but that don’t have big marketing budgets.
Recently, Facebook announced that developers would have a minimum of 90 days between the announcement of a breaking change and its implementation. To make adapting to these changes more predictable, Facebook now says it will only push breaking changes on the first day of any given month. This will reduce stress for developers, since they won’t have to worry that they may have missed an announcement about a breaking change that could suddenly take their app down.
For example, Facebook announced on September 16th that the FB.Data calls for waiting until specific queries were completed to perform an action will be deprecated. As such, the FB.Data calls will be deprecated on the first day of the month following the minimum 90 day period, January 1st, 2012.
Developers of XMPP Facebook Chat clients can now begin migrating to OAuth 2.0. They can use access tokens over SSL rather than
session_key parameters. As such, Facebook will deprecate Auth.promotesession on October 1st. The move to OAuth 2.0 will protect Chat clients from some types of data leaks.
Developers can now manage invite lists and check RSVP status for Events using the Graph API in addition to creating and deleting Events. This could help developers create powerful interfaces for professional event managers, or create an Events dashboard for users.
Facebook improved its Photos product last month, increasing the maximum photo size from 760 to 920 pixels. Photos uploaded through the Graph API can now have a maximum size of 920 pixels as well. However, photos returned through the API will still have a maximum size of 720 pixels, so there are no actual changes to what’s received from the API or FQL. The change will keep users from abandoning photo upload and editing apps when they want to upload high resolution photos.
By using FB.Canvas.SetUrlHandler, developers can now select to have clicks of links related to their apps from ticker stories, bookmarks, bookmark drop-down Requests and Request Notification stories be handled in-line in the apps. Previously, these clicks would needlessly redirect a user when they were already viewing the app the link led to.
For example, if an app employs FB.Canvas.SetUrlHandler, a user who clicks on a ‘your move’ Request or an achievement story while already viewing the app that published the Request or story wouldn’t be sent to the corresponding URL, but would be brought to the corresponding screen within the app. This should decrease load times and bounces from users clicking links on the Canvas page.
Flash applications using wmode=”window” rather than the recommended wmode=”opaque” can now pass a callback function to hideFlashCallback to FB.init to customize the visibility of flash elements when popups are shown. Previously, Flash objects could become hidden when popups were shown.