Overview: Facebook’s Current Application Communication Channels
With the Facebook redesign going live this week and other recent changes to the Facebook Platform, many developers find themselves asking, “What is the best way to communicate with my users”? Several channels exist which developers can utilize to effectively communicate with their current user base, as well as with potential users. While most of these methods are covered in the Facebook Developer’s Wiki, their intended purposes and best uses are often left to the developer’s interpretation.
Notifications
Two methods exist when sending notifications to users. An application can either send an app_to_user notification, or a user_to_user variant. Both types of notifications appear in the bottom right-hand corner of all Facebook pages.
App_to_User

These notifications are ideal for sending updates to current users of your application, with limitations. The largest restriction is that an application may only send a maximum of 7 notifications to an individual user per week. The advantage is that a notification of this type is portrayed as coming from your application, and not another user; therefore they are ideal for anonymous communication. These notifications can only be delivered to users who have already authorized your application. In order to fully leverage notifications of this type, you will probably want to send these out via a CRON script set to run once every 24 hours. This will guarantee your application does not run over the limit of 7 per week.
User_to_User

This communication type is the broadest channel that exists on Facebook currently. If you plan on sending a large number of updates or requests, your application should be using user_to_user notifications. These notifications exist between 2 users, and may be sent from User A to User B under any of the following scenarios:
- User A is an application user, and is friends with User B who is also an application user.
- User A is an application user, and is friends with User B who is not an application user.
- User A is an application user, and is not friends with User B but who also is an application user.
In the past, it has been possible to store the session key of an application user, and forge that user’s session in order to send an “anonymous” notification to himself/herself. This action is somewhat dubious with respect to Facebook’s Terms of Service. It is worth noting, with the new profile, this method will only work if the user has granted your application an infinite session key (the user checked the “always keep me logged into this application” box).
- Resources for Notifications: Developer’s Wiki, App_to_User Notifications via Developer’s Forums, Notification Spam Limitations
Requests

One important communication channel for developers to utilize are requests. These are often sent to non-application users who may be interested in using your application. The downside is that they cannot be sent automatically. The sender most approve a Facebook pop-up in order for these to be sent. Your application can pre-fill the FBML tag with a list userids as well as a personalized message; however the same message must be sent out to all users in each batch.
Many users ignore requests altogether because they were often abused by applications before Facebook imposed allocations and application limits. They do have one advantage, though: An application can convey a considerable amount of information to an end user before they can hide it. A user must click on a request, and then at the bottom of the request, click ignore. However, the body of the request may contain several lines of information to catch the appeal of the end user. By contrast, notifications have at most one or two sentences to strike interest – otherwise, end users will click “x” to hide all notifications from your application.
- Resources for Requests: Developer’s Wiki
News Feed

This is the most complicated of the communication channels available to implement. Feed stories can be created by your application which appear on on a user’s Wall feed – and potentially on their friend’s News Feeds. This communication channel should not be used for communication between 2 people, but rather, between a user and all of their friends. There is also no guarantee that a news feed story will be published to a user’s friends, so be sure to utilize other communication channels as well as this one. This communication channel is great for growing your application within friend groups, while avoiding the risk of appearing “spammy” to users.
The technical details regarding feed stories can be found in the Developer’s Wiki.
- Resources for News Feed: Developer’s Wiki, Developer’s Forum, Feed Preview Console, Inside Facebook Article
Emails
Facebook exposes an API to send a user an email to the account they registered for Facebook with. It is worth noting there is no current method for accessing a user’s email address directly. An application may only send 5 emails to a user per day, and that user must have previously authorized the application in order to do so. Emails from this API call will contain a “Disable” link (which will prevent your application from sending further emails to that user) which exists either at the top of the email or at the bottom, depending on how many users have clicked it. You can find where the link is located on your application’s insights page. Emails are great for applications that may exist outside of the Facebook Platform, and are best realized when informing a user of a time-sensitive action (such as an auction about to end).
- Resources for Emails: Developer’s Wiki
Other Ideas:
Several communication channels also exist outside the core Facebook Platform channels that developers can use to communicate with application users. Tactics include:
- Import a user’s contact list from another source with their permission, and send invites
- Ask users for their email address via a form, and send updates
- Collect instant messaging account names from application users, an send updates via messages (this can be automated)
- Create an RSS feed which users can subscribe to
- Create a link which pre-fills an inbox message (the end user must still press send)
- Update an application box on a user’s profile to alert them of new application activity
Communicating with users is essential to creating a compelling application experience. Successful applications typically utilize more than one (if not all) of the above communication chanels. It is up to you, the developer, to determine which is the best match for the type of communication your application will be doing.













October 18th, 2008 at 5:42 am
can i import contact list in my facebook account to another account