The Facebook Platform Marketplace is here to help you. We've harnessed the power of Facebook Marketplace technology to build a quick and efficient way for you to connect with the other people or businesses to make your idea for a Facebook Platform application into a reality.
Everyday the team here at Facebook talks with thousands of people, businesses, and some of the biggest brands worldwide who are looking to find contract development services, or developers to join their team. We're planning on sending every single one of them to the Facebook Platform Marketplace, so the opportunity is huge!
Get started by checking out the front page of the Facebook Developer application at:
http://facebook.com/developers
You'll see a new Marketplace section where you can post two different types of listings:
1) Facebook Platform - Developers Wanted: If you are the head of marketing for a large brand, an independent business person with a great idea, or just someone looking for a teammate in building an application you can post here. Be sure to post exactly who or what type of firm you are looking for. We also recommend that you make sure to include the following information when you setup your listing:
- - Company Name
- - Company Description
- - Clear Description of What You Are Looking to Build
- - Budget Estimate
2) Facebook Platform - Developers Available: If you're a single ninja developer looking to do some hacking on the side and are willing to take on some projects, or if you are a full-service, premiere Facebook Platform development shop, be sure that you are listed here. We'll be sending everyone we talk to to check out this page. We also recommend that you make sure to include the following information when you setup your listing:
- - Company Name
- - Company Description
- - Examples of Applications Built
- - Typical Rates
- - Facebook Page URL
- - Website URL
- - A Way to Contact You
We're excited about the community of developers and development shops that are forming out there to build and consult on Facebook Platform, and we're even more excited to bring everyone to the same place in the Facebook Platform Marketplace. Over time we'll be adding lots of cool new features to make the market even more efficient.
Enjoy!
src attribute of any img tags are automatically rewritten, so you as developers don’t need to do anything special to get this to work. All of this will continue to work as it does now.
However, one important change in the new design is that we will need to deprecate the method
fbml.refreshImgSrc, which currently allows you to make Facebook re-request an image from your servers in the event that the image has changed. After we switch to the new system, if you need an image to be re-requested and cached, you will need to change the URI of your image to something new, which you can do by appending a random variable in the query string, (such as the unix timestamp). We suggest that you use a GET variable called "fbrefresh" to hold the random variable.
For example, if you publish an image to a user's profile with src = "http://www.yourserver.com/pic001.jpg" and that image changes on your server and you want to force that image to be refreshed, then under the new system you should republish the FBML to the profile with the a new img src = "http://www.yourserver.com/pic001.jpg?fbrefresh=1201226471". If you publish the same image to a lot of profiles, and need to periodically update all of those images, then you can achieve this by wrapping that image in a fb:ref tag and updating the image within that fb:ref as necessary.
It’s true that we currently request you not to use these "cachebreakers" to work around problems with the image cache, but with the new backend design for our image cache, this will actually be the recommended method for updating an image. Also, if you need us to remove an application image from the cache for legal reasons, we will provide an email for you to contact, and we will remove the image(s) from the cache after you have removed them from your servers.
These changes will be going out in mid- to late-February. Please don't switch over to the new system immediately, as using cachebreakers is still a problem for the current implementation. But we hope that this gives you ample time to make the necessary changes in your code, and we will publish another post when the changes take effect. We apologize for the inconvenience. If you have any questions or concerns, please contact developers-help@facebook.com.
This JavaScript client library allows you to make Facebook API calls from any web site and makes it easy to create Ajax Facebook applications. Since the library does not require any server-side code on your server, you can now create a Facebook application that can be hosted on any web site that serves static HTML. An application that uses this client library should be registered as an iframe type. This applies to either iframe Facebook apps that users access through the Facebook web site or apps that users access directly on the app’s own web sites. Almost all Facebook APIs are supported. The exceptions are:
- Photo upload API is not supported.
- profile_setFBML() can only set FBML on the current user’s profile.
Using this client library is easy. You just need to follow two steps:
- Download and save content of http://api.facebook.com/static/xd_receiver.htm somewhere on your web site. For example, you can use http://www.foo.com/xd_receiver.htm for a Facebook App that’s hosted on http://www.foo.com.
- Reference the Facebook JavaScript http://static.ak.facebook.com/js/api_lib/FacebookApi.debug.js in your HTML page.
Here is the sample code for getting the current user’s friends list.
<!-- Output area to show the output from Facebook API -->
<textarea style="width:500px;height:300px;" id="_traceTextBox"><
/textarea>
<script src="http://static.ak.facebook.com/js/api_lib/FacebookApi.debug.js"
type="text/javascript"></script>
<script type="text/javascript">
// Create an ApiClient object, passing app’s api key and
// a site relative url to xd_receiver.htm
var api = new FB.ApiClient('<insert_your_app_key_here', '/xd_receiver.htm',
null);
// require user to login
api.requireLogin(function(exception) {
window.alert(“Current user id is “ + api.get_session().uid);
// Get friends list
api.friends_get(function(result, exception) {
Debug.dump(result, 'friendsResult from non-batch execution ');
});
});
</script>
For more information, please visit http://wiki.developers.facebook.com/index.php/JavaScript_Client_Library.
Including:
- Facebook Platform + Amazon Web Services Tutorial
- HelloWorld Facebook Application for Amazon EC2 and S3
- Amazon Web Services Simple Monthly Cost Calculator
- AWS case studies from iLike, Booze Mail, and SocialMoth Secrets.
We are excited to be partnering with Amazon Web Services to provide developers with these resources for instant scalability. Check it out now >
Starting tonight, we are converting Facebook Application About pages to use the Facebook Pages infrastructure and format. This change enriches application About Pages and provides additional functionality. Users can become fans of your application and review it. Adding an application is different from becoming a fan of the application, users can choose either or both. Every Application Developer automatically becomes becomes an administrator of the About Page. Admins can send updates to their applications' fans and add other applications (for example, Photos) to your About Page.
This change also improves your application's statistics. These new statistics include more comprehensive usage statistics, detailed HTTP Requests and add and removal statistics.
There are subtle differences between regular Facebook Pages and application About pages. For example, the Reviews application is installed on About pages by default and cannot be removed. Your application’s About page cannot have a Mini-Feed.
All FBML tags that work with Facebook Pages continue to work on the new About Pages.
As for the Facebook API, you can use the Pages.getInfo API call to retrieve information regarding your About Page, but it returns information for these fields only: name, pic_big, pic_small, pic, pic_square, pic_large, type, and has_added_app.
The other fields are specific to standard Facebook Pages and depend on the different Page categories.
If you use the Fql.query API call to query the FQL page table, it returns the same values as the Pages.getInfo call. The Pages.isAppAdded and Pages.isAdmin methods behave normally, while Pages.isFan does not work on About pages. The Pages.isAdmin call returns the current developers of an application. Since Application About Pages cannot have a Mini-Feed, Feed.publishTemplatizedAction does not work for About pages.
A few developers have created Pages for their applications so that they can use the additional functionality provided by Pages. If you did this, you can transfer the fans and reviews from your existing Page to the new application About Page. Please send us an email at app-about-page@publists.facebook.com with your application ID or application key, Page ID and the developer’s user ID. The developer requesting the migration should be an admin of the original Page. If you choose to migrate your existing Page we will delete it after the migration completes.
Send us your feedback. We'll continue to improve Facebook Platform to serve the interests of both users and developers.
The batch API allows you to combine multiple individual operations into a single request. This will significantly improve your application latency and reduce traffic load on Facebook servers. We have also updated our PHP5 client library to make using the batch API easier. Here is an example that calls the Facebook API in no-batched mode,
$friends = $api_client->friends_get();
$notifications = $api_client->notifications_get();
The above code can be rewritten to use the batch API as follows:
$facebook->api_client->begin_batch();
$friends = & $api_client->friends_get();
$notifications = & $api_client->notifications_get();
$facebook->api_client->end_batch();
We’d encourage developers to try it out and send us feedbacks. To learn more about the batch API check out the documentation at http://wiki.developers.facebook.com/index.php/Using_batching_API
To foster this intended behavior, we are changing the way the function works: the "actor_id" parameter will be ignored. Instead the session_key used to generate the feed story will be used as the actor. Since previously the actor_id could be set to be a page_id, we'll now support a new parameter for Facebook Pages: page_actor_id. You are encouraged to switch over to the new parameters right now, though we'll continue to support the "actor_id" parameter for the next month to allow you time to transition. The PHP client library and the documentation have been updated to reflect the new version of the function.
Although we will continue to support the old parameter for the next month to allow you time to update your code as necessary, we appreciate your responsiveness in eliminating "non-active" usage of feed stories as soon as possible. In order to ensure a high quality experience for users, starting 9am Pacific time Tuesday 22 January we may contact you, or in severe cases initiate an enforcement action, if your stories are not complying with the new policy, especially if the volume of non-complying stories is high.
As part of our continuing iteration of Facebook Platform, we constantly try to clarify and adjust policies and technical functionality to better protect users and enhance user experience. (The recent prohibition on the word “message” in feed stories is an example.) By ensuring the best environment for users, we think we’re also best serving the developer community.
While we understand that good-faith errors are possible, developers should always be cognizant of their obligations under the Developer Terms of Service and other elements of Facebook policy. Effective immediately, we’re restricting access for a period of time to Mini-Feed, News Feed, notifications, and other Facebook Platform functionality for any applications engaging in deceptive or malicious behavior. This measured action is in response to multiple violations of Facebook policies, generating an anomalously high level of user complaints.
The vast majority of the Facebook developer community is well-intentioned and unlikely to ever be impacted by an enforcement action; we strive to work with developers to correct any issues we discover. But when necessary we will act quickly to correct problems and ensure a better Facebook Platform experience for all.
If you’re not sure if something is ok, please drop us a line at developers-help@facebook.com before implementing it; we’d be happy to assist you. Also please contact us if you wish to report a Developer Terms of Service violation or suggest changes to policy to improve user experience or clarify meaning.
We’re excited about the growth of Facebook Platform and always do our best to ensure a thriving application ecosystem where user experience is paramount -- which we believe also creates the best developer experience.
One caveat to FBJS, however, is that most 3rd-party libraries are incompatible, which makes things like animation a little bit tricky. So we decided to create an animation library for FBJS to help developers out. Unsatisfied with the state of 3rd-party animation libraries, we built our own animation library from scratch. We've been using this new animation library internally for several months for animations around Facebook, and everyone here has been very happy with it. Now we're ready to release it to developers on Facebook Platform so you can use it too.
And then we thought: "why stop there?" The library had very little Facebook-specific code, so we took some time to modularize it, and now we're open-sourcing it for everyone. The code is released under a modified BSD license, which means you're free to use it pretty much wherever you want.
So check out the documentation and enjoy! http://wiki.developers.facebook.com/index.php/FBJS/Animation.
For applications using FBML canvas pages and profile boxes, you can start using FBJS Animation immediately. If you want to use FBJS Animation outside of Facebook, grab the Javascript from our open source portal and include it on your site. After that, the syntax is exactly the same as it is on Facebook.
To benefit all users, therefore, we will soon be launching a “profile clean-up” tool. Similar to how your computer’s desktop will remind you to get rid of unused icons, this tool will give users the option to move extra profile boxes to an “extended portion” of their profile. Users can choose to move these boxes; we will recommend that they keep the Friends Box, Mini-Feed, Wall, Basic and Personal Information as well as the top 12 application boxes they have added. At the bottom of the profile will then be a link to “Show Extended Profile”. Any user will be able to expand the profile at any point in time to see all the applications a user has added to their profile.
We believe this change will allow users to interact with all of their applications in a more meaningful way. In addition to allowing the profile page to load faster, this means users will have an easy way to publicly acknowledge their favorite applications. We want platform applications to be a fully integrated piece of Facebook, which is why we don’t want users to feel that these applications have somehow infringed on the simplicity of their Facebook experience. We will continue to keep you posted on any changes we make to Facebook and to Platform.
Recently, we've seen a few developers who have developed multiple applications abusing the limits we have put in place on email notifications. Specifically, these developers have been sending notification emails to users for one application with another application, in order to "pool" the total quota of email notifications together.
Additionally, on occasion we've seen applications deceiving or tricking users by putting links into Mini-Feed, notification, and notification Email communications which link to the installation of a different app in a similar way. Thus, tricking the user into installing an application which they didn't intend to.
Starting today, we'll begin blocking links in Mini-Feed, Notifications, and Notification Emails which lead to the installation of another application in the hopes that developers focus on user experience and engagement being paramount, not deceiving users for the sake of growth.
Happy Hacking!
Recent News
Update on Simpler Policies and Enhanced Enforcement
November 24, 2009
Facebook Platform News 11/17/09
November 17, 2009
Evolving OAuth via the Open Web Foundation
November 17, 2009
Start Building with the Microsoft SDK for Facebook Platform
November 9, 2009
Continued Action Against Deceptive Ads
November 5, 2009
Creating a Slimmer JavaScript SDK Together
November 5, 2009
Security and Facebook Platform
November 5, 2009
Keep Your Users Coming Back for More
November 4, 2009
Postcards from October Developer Events
November 3, 2009







