Requested Features

From Facebook Developers Wiki

Jump to: navigation, search

This is a place to request additional platform features. If you have any FBML requests please see Requested FBML Tags.

To second a request, add four tildes ~~~~ to insert your signature with a timestamp and move the request to the "Seconded Requests" section if it's not already there.

Contents

[edit] Formal Requests

These requests are designated as 'Formal Requests' as they're fully documented and a place is offered for discussion and support.

[edit] New Requests

  1. <map></map> This is for adding clickable areas onto images - http://www.w3schools.com/tags/tag_map.asp)
  2. Support for embedding Director .DCR files
  3. FQL equivalent of fb:if-can-see
  4. ability to autopopulate multi-friend selector ie id="324234,342424,423432423424"
  5. Real AJAX calls
  6. Caching of images on canvas page, if using the same images on canvas page as in profile, they are already cached, so should be able to use those cached files
    1. This is the same idea as the <fb:cached-image> request... and cached-image would be more controllable by the developer.
  7. Line number displays in FBML error pages
    1. and continue dumping "source" after error --blu|two
  8. fb:name - if useyou and possessive are true, it should return 'your' instead of 'you'.
    1. i believe this already happens, no?
  9. fb:friend-selector needs to be able to have a id predifined as selected
    1. fb:multi-friend-input too
  10. Basic dom javascript support (it would help make forms smarter, etc).
  11. sendRequest - Could you please allow facebook.notifications.sendRequest() to send a request to the same user that is calling the function? Doing so would make development of applications that send requests easier.
    1. PLEASE do this. I'm almost done with my app but I can't debug because I can't test!
  12. How about a category for religious applications? There are already a couple daily verse apps... Would be more appropriate than "Just for Fun".
  13. Static canvas fbml, like the profile box, so that some of the canvas pages can avoid callback traffic.
    1. You can use <fb:ref to remove the need to send massive amounts of data --blu|two
  14. Subscribe for callback events when data changes (saves having to poll user profiles, etc)
  15. The ability for multiple devs to have access to the application info (like callback url, etc.), not just be listed as a dev on the about page
  16. (In Developer application) Ability to specify that an application will be used by "Both" a Website and Desktop clients. This will eliminate the need to create two Facebook applications for desktop applications that also use Facebook canvas pages served by a website.
  17. A special 'application session' that would allow access to the facebook API without the needing a logged in user (and without needing to use a developer's 'infinite session' key)
    1. a new auth.useApplicationSession API call to generate this special key.
    2. programmable access to application settings currently on available via http://www.facebook.com/developers/apps.php, possibly through a application API space, only available to the application session
      1. calls could look like application.setDefaultFBML($FBML), application.setCallbackUrl($uri) etc..
      2. attempts to access the application API space with a user session key should throw an error.
      3. similarly, calls to friends or profile API space with an application session key should also throw an error (since applications can't have friends or profiles)
  18. A tz attribute should be added to fb:wallpost to correlate with the way the tz attribute works in fb:time.
  19. An FBML tag, IF-USER-HAS-JAVASCRIPT and IF-NO-JAVASCRIPT, this way we can decide whether to use dynamic fbml / mock ajax or to use standard html/forms.
  20. A <fb:canvas> tag to go with <fb:wide> and <fb:narrow> so you can set the two profile locations and the canvas location in a single go
  21. Get the News Feed data of a user through the API.
  22. New <fb:if-is-user uid="[uid]"> tag that only displays the contained FBML if the person currently viewing the profile is the specified user. At first I thought that <fb:user> could be used for this, but it seems a little different.
  23. DTD for FBML so that DTD-aware editors such as IntelliJ IDEA can do real-time validation and "code completion" when writing FBML (would save a lot of referring back to the docs to look up attribute names). Would also need to make sure the FBML parser on Facebook's end doesn't barf on DTD specs in the source.
  24. The Developer RSS feed needs a landing page that shows the stories. At the moment it goes to developer.facebook.com
  25. Support for network statistics/info in the Platform
  26. A preference to allow users to disable email notification based on application
  27. A max length on fb-textarea, similar to the fb-text maxlength except javascript based.
  28. Mock ajax should send the IP address of the current user
  29. <fb:wallpost-action>...</fb:wallpost-action> for not to render itself if the inner content evaluates to empty (or whitespace). (Currently cannot be added or removed actions in a wallpost based on a specific condition for example fb:if-user-has-added-app or fb:if-is-user)
  30. Give friend-selector and multi friend a way to only return application users
  31. Search a Facebook group to see which of your friends are members
  32. Support for an mock onclick to toggle a hidden checkbox in a form. This is a normal and safe AJAX pattern that you can't do in FB now.
  33. Support for a visual friend chooser. The typing-based multi-friend selector is insufficient in many cases, and a visual selector with images would be great.
  34. Support for Order_By in FQL
  35. Create a group
  36. Ability to query via FQL for all users with my app. It would be really useful for reporting.
  37. Some way to reset a user's profile to display the app's "Default FBML" as defined in the app's definition page. As it is now, once an app has called profile.setFBML for a particular user, it can never go back to showing the default FBML for that user. (Particularly difficult for a developer who calls setFBML for himself while testing, then decides he wants to use the default FBML but can't test it in his own account). E.g., a profile.clearFBML or profile.resetFBML API. Or when someone calls profile.setFBML("") it could go back to showing the default FBML for that user instead of hiding the app from the profile. Or you could allow profile.setFBML("some special string") that sets it back to the default FBML.
  38. Pass x and y parameters to a SWF when a user activates it by clicking on the overlay image. This would allow the SWF to do mock interactivity by performing different actions based on where the user clicked in the image. (Pass special values such as -1,-1 if the user activated it by hitting Enter in browsers where that's possible).
  39. When a user marks a photo album as "Show only to friends", it cannot be accessed from photos.getAlbums(uid). Therefore there is inconsistent performance across the FB-Photos app and other applications that use photos.
  40. Update feeds
  41. For the Data Store API, add the data.deleteUserPreference method.
  42. A way to get comments data by xid. <fb:comments> is nice, but all of the comments stay with Facebook so there is no way for my app to present recent comments, etc. on other pages.
  43. base.css is setting text alignment globally for all paragraph, td, and body tags with p { text-align:left }. This overrides any alignment tags in HTML tabs such as align="center" or center tags, which according to FBML docs are supported. Text editors that use designmode don't use styles to align (except mozilla with useCss), but instead use align attributes. The following HTML will always be left aligned in canvas pages. Please correct this by only applying styles to facebook classes and not generically.
    <p align=center>This paragraph will always be left aligned on canvas pages</p>
  44. add application blocking to the api - specifically a user's blocked applications and the ability to add/remove applications to/from a user's blocklist
  45. Ability to add applications to group pages
  46. Ability to modify layout/organization of group pages - Seconded by 506687979 18:31, 3 February 2008 (PST)
  47. Ability to have folder style organization for multiple organized types of discussions, posts, photos, etc...
  48. Add ability to update user's on-line status.
  49. Add ability to get headers of 'unread' items, not just their count (e.g. through notification.get()). A header might include the sender's name and the subject (similar to that received in the accompanying e-mail notification).
  50. Add Application Invites to notifications.get
  51. Allow profile box FBML to be styled based on whether it's in a wide or narrow box (without <fb:wide> or <fb:narrow>). Facebook already applies "wide"/"narrow" classes to profile boxes, but they seem to be inaccessible from FBML. Maybe Facebook could apply "[app-prefix]_fb-wide" and "[app-prefix]_fb-narrow" classes as well. 551070112 21:42, 21 December 2007 (PST)
  52. Add ability to users.getInfo to return a list of all the installed apps!!!
  53. FBJS native method to call native "Waiting" animation.
  54. Give access to attachments from other applications in the API. I cannot find the way to get informations about attachable applications of the user, and I do not seem to have access to "attachments.show_attachment_edit()" and "FBML.attachCurlFromObject()" or other useful things like that from FBJS. -- 337800027
  55. Add an API Method to know whitch language has been set in the user account. User:551073430 Seconded by #749918722 14:35, 17 March 2008 (PDT)
  56. Ability to retrieve all status messages ever made by user and date/time, to provide a glimpse into the past at any point desired. 528995148
  57. Exclude IDs on group message - I can send a message to a whole group (if admin) but sometimes I want to send to just part of group, perhaps those who did not respond already or those who want to be notified more often, etc. Since you cannot specify multiple recipient IDs in Facebook's "compose message" URL, specifying a group and then excluding IDS would work and would result in fewer messages sent than if we must send to whole group.
  58. Add attribute to <fb:name> to show "me". I want <fb:name> to print "me" in some cases, such as "Alex likes me the best".

[edit] Seconded Requests


[edit] multi-friend-selector without the invitations

  • A visual friend selector that doesn't send requests, just returns UID's (i.e. the functionality of multi-friend-input with the interface of the full version of multi-friend-selector).
    • Seconded by: 629837109 14:08, 26 May 2008 (PDT)

[edit] FBJS .getAttribute() method exposed

[edit] An API to access a user's Posted Items

  1. Seconded by 605401 20:41, 24 March 2008 (PDT)

[edit] FQL album privacy flag to check if album is set to "Everyone" or "Only my Friends"

819064125 10:31, 18 March 2008 (PDT) 646477348 10:37, 18 March 2008 (PDT)

[edit] A way to have a user create a new event with fields pre-filled =

i.e., redirecting to http://www.facebook.com/editevent.php?name=YourEvent&description=ThisIsAURLEncodedDescription should have the proper fields pre-filled. 13608493, formerly known as Sciyoshi

  1. Seconded by 274705878 08:31, 10 March 2008 (PDT)
  2. Thirded 0:28, 6 May 2008

Is there a way to do this in a more awkward way already? If so I'd love to hear about it.. Could make event creation a lot simpler.. you can message in this fashion, so I am suprised I can't find a way of doing it already.

[edit] Ability to retrieve the list of applications used by your friends/particular user

To promote cross application interaction, it'd be a great start to actually know which other apps a particular user already has added to their profile. I'm surprosed this one isnt implemented yet. (Maybe it is?)

   #Seconded by [User:90404584] 14:06, 6 March 2008 (EST)

[edit] Ability to modify layout/organization of group pages

  1. I'd like to see a way specifically where I could have a group with multiple contact info boxes....as in where I could have a central page for a group with branches in many different locations.
    1. Seconded by 506687979 18:29, 3 February 2008 (PST)


[edit] FBJS "document.getLocation" counterpart to "document.setLocation"

Or, if this is a security issue, at least the ability to get the anchor portion of the URL (e.g. the "p3" in "http://example.com/index.htm?q=blah#p3"). This would allow FBJS within a canvas page to receive arguments via the URL. As a particular example, I have an FBML canvas page with some FBJS and an FB:IFRAME. The iframe dimensions are set by the FBML document, but if the user navigates to a different url within the iframe, the dimensions may not be ideal for the new URL, so a normal Javascript inside the frame does:
document.parent.location = "http://apps.facebook.com/myapp/pagewithiframe#h="+document.height
and the FBJS would then be able to read the anchor part of this URL and dynamically resize the iframe accordingly.
    1. Seconded by 2510751 19:01, 10 January 2008 (PST)
    2. Seconded by 2700970 14:30, 28 February 2008 (PST)
    3. Seconded by 4906403 21:46, 12 April 2008 (PDT)

[edit] Cache lifetime for fb:ref.

Eg; <fb:ref url="url1" life="3600"> should cache the url for 1 hour instead of indefinitely. Seconded by 27900066 20:18, 13 December 2007 (PST)

[edit] crossdomain.xml on profile.ak.facebook.com

  1. Add crossdomain.xml to http://profile.ak.facebook.com/ so flash apps can manipulate profile images

Seconded by 532245260 14:12, 27 November 2007 (PST)

Seconded by 735103459 14:40, 03 February 2008 (PST)

Seconded by 2534508 19:43, 15 March 2008 (PDT)

Seconded by 870105724 07:43, 27 March 2008 (PDT)

Seconded by 522767188 15:26, 26 May 2008 (AEST)

Seconded by 634499931 13:21, 13 June 2008 (PDT)

Seconded by 870070084 13:21, 13 June 2008 (PDT) PLEASEEEE WE NEED IT !

[edit] fbml_refreshRefUrl enhancements

RE: batch fb:ref clearing... ex. fbml_refreshRefUrl(url1, [url2, [url3, ...]]);

Seconded by 553885591 04:18, 13 November 2007 (PST)

I propose a new 'options' parameter be added to fbml_refreshRefUrl with the following possible values:

fbml_refreshRefUrl($url, REF_NOW); (refresh immmediately) (default)

fbml_refreshRefUrl($url, REF_LAZY); (delete cached data, refresh on next use)

fbml_refreshRefUrl($url, REF_DELETE); (delete cached data and delete key)

fbml_refreshRefUrl($url, REF_REGEXP); (treat $url as a regular expression pattern to match existing keys)


Options bits can be combined:

To do a lazy refresh of all profile data for all starsigns:

fbml_refreshRefUrl("xx.com/profile.php\?starsigns=.*", REF_REGEXP | REF_LAZY);


To clear all data from entire cache:

fbml_refreshRefUrl(".*", REF_REGEXP | REF_DELETE);


Also...

Add a new error code to clarify when the cache size limit is reached:

3 Request exceeds maximum cache size of 64k.

[edit] handle FBML

A way to get the FBML of a handle.

  1. Seconded by 53801232 10:23, 12 October 2007 (PDT)

[edit] Access to friends' email address(es)

I'll concede there are some thorny privacy implications, and it would be a good idea to carefully limit this in some fashion. I want this information so I can easily, seamlessly interconnect with other Web sites, and "email address" is (arguably) the closest thing there is to a universal identifier. I don't intend to use it for spam, though I don't readily know of a way to prevent me from doing so. Hopefully someone more clever than I has an answer to that.

If there were a universally-accepted standard for sharing this information in a secure manner, that'd work too. For the specific application I have in mind, I just need to be able to compare addresses. (Specifically, I want to use an email address to see if it exists on another site that /does/ support query-by-email-address in their API.) I don't have a clever alternative for that, sadly. 600426560 19:07, 17 November 2007 (PST)


Please - do not even consider this! 697913909 00:52, 15 November 2007 (PST)

I second this request, would be very usefull.

Why not return a hash of an email address? This would enable someone who already knew the person's email address (e.g., had them in their address book) to test if it is indeed the same person. -Steve Farrell

(Again, a hashed address isn't practical, unless you can somehow convince hundreds of thousands of other Web sites all across the Internet to include hashes in their APIs, and to use exactly the same hashing technique. I can click on my friends' pages and, assuming their permissions are set accordingly, get all their email addresses anyway. This just makes an already-existing function available in the API, and opens up a truckload of innovative inter-site communications options, including all kinds of sites that aren't strictly speaking "social" sites.) 600426560 19:43, 29 April 2008 (PDT)

It'd be a great feature to be able to find a friend's profile using a known e-mail address. Clearly the Facebook "Search" box already allows this, so why not include it in the API? The queries would need to be limited to a reasonably low number, but this would be incredibly useful. Something like friends.getUIDfromEmail, returning the friend's UID given their e-mail. 703497

[edit] REST method to invalidate (not refresh) fb:ref url

Create a REST method to invalidate (vs. refresh) a cached fb:ref url reference (or cached image). The content wouldn't be refreshed until it is actually accessed again. This would be handy for items that may be accessed by users less frequently than they are updated, or when releasing new versions of an application that have significantly changed from teh last version. Even better would be to add the capability to invalidate an entire class of URLs using a wildcard (using "*" or other character).

  1. Seconded by 717400660 16:08, 7 October 2007 (PDT)

I've entered this as BUG 456, 717400660 21:38, 19 October 2007 (PDT)

[edit] list of app users

a call to return a list of users (or user IDs)with the application installed (i.e. application.getInstallUsers() )

    1. Seconded by 590719129 16:16, 26 September 2007 (PDT)
  1. Ability to access photos in the profile picture album just like any other album
    1. Seconded by 8112822 19:08, 19 September 2007 (PDT)
  2. FQL equivalent of <fb:if-can-see>
    1. Sconded by 525336368 17:20, 14 September 2007 (PDT) Would be helpful to add a album privacy flag.
  3. A special 'application session' that would allow access to the facebook API without the needing a logged in user (and without needing to use a developer's 'infinte session' key)
    1. a new auth.useApplicationSession API call to generate this special key.

[edit] HTTPS support

Support for https. Will allow apps to be written that integrate with other systems. Currently authenticating against another system is too dangerous. (How about processing card payments for an app? Collecting money for charity? Currently the "causes" app is forced to redirect users to a payment gateway.)

  1. Seconded by 761104583 13:57, 1 October 2007 (PDT)
  2. 717400660 20:40, 19 October 2007 (PDT)
  3. 663271965 12:13, 28 December 2007 (PST)
  4. 24406571 15:51, 23 January 2008 (PST)
  5. 3102254 15:38, 09 February 2008 (EST)
  6. 749918722 14:38, 17 March 2008 (PDT)

[edit] REST API to fetch user's News Feed data

Get the News Feed data of a user through the API.

    1. Seconded again by 509654615
    2. Seconded again by 720540513 01:04, 23 August 2007 (PDT)
    3. Seconded agani by 1110257432 26 February 2008
    4. Seconded again by 743218631 15:04, 30 April 2008 (PDT)
  1. fb:friend-selector and fb:multi-friend-input needs to be able to have an id selected, so that when the user comes back to edit a form, the friend-selector can show his previous selection.
    1. - Seconded!
  1. Test Accounts - I would like to have access to a few accounts to do testing of social app features, but cannot do this cleanly. Have some public, shared test accounts, or having an easy way to get a temporary account, would be awesome.
    1. - Seconded! I've created a couple of test accounts, and they look silly as my "friends", and there doesn't seem to be any way to hide them!
    2. - Seconded again. An entire sandbox would be nice so you can develop without people stumbling upon anything at all.
    3. - Seconded once more by 657205366 13:40, 23 August 2007 (PDT)
    4. - Thirded. There is no way to develop a more than trvial app without testing the various user involvements in that app. This needs multiple test accounts. I would suggest that the primary account set up a private group to which the secondary accounts join. The group name should include a string such as 'test accounts'. Thus "steves test accounts" would be my set. This could be used by Facebook to weed out the test user IDs so they can report a valid real user base. I suspect that is partly why they are concerned with more than 1 account per user. Steve.
    5. - Fourthed, or sixthed, by 704011785 22:41, 7 September 2007 (PDT). I am in the midst of setting up a second user account, which is essential to test the app I'm developing. But that violates the Terms of Use! It's ridiculous that I have to violate the TOU to develop an app. We also need company accounts. I have a personal Facebook account, but I don't want my company's apps to be linked to my personal account. I need a separate account to manage our company's apps, and I created one - again violating the TOU! -- 533017547 08:01, 3 September 2007 (PDT)
    6. - Nth'd (whatever number we're up to). I don't want to bug my friends just to make sure things work for people other than me. 600426560 21:28, 26 November 2007 (PST)
    7. - Nth'd^2 by 11703002 09:04, 29 January 2008 (PST). It seems that it would be especially helpful to be able to generate a multi-user test account with randomized connections between fake users, and to be able to switch back and forth between users (via tabs or somesuch thing). These accounts should be accessible in a similar way to Applications - allow a user to create an account and grant access to other developers. That way, each developer or team could have a customized fake social graph of 10-50 fake people who are connected with each other. (Eventually, perhaps FB could offer a simple scripting language to drive actions of test accounts to perform simple application actions at given intervals to test features, load, and how load interacts with API calls based on user actions.)
  2. Mock AJAX triggering onSubmit of a form rather than just onClick of the submit button. People very often submit forms by hitting return - which currently just breaks things. Some browsers (eg. Safari) seem to trigger it anyway, but others (eg. IE) don't.
    1. Seconded by 558830634 22:02, 25 July 2007 (PDT). Especially since Facebook users have become accustomed to using the Enter key because Facebook's Search feature doesn't have a submit button.
  3. Give friend-selector and multi friend a way to only return application users
    1. Seconded by 728382305 22:13, 20 September 2007 (PDT)
  4. support for fb:swf waitforclick=false on the profile page in response to a mock ajax call. This will still enforce a click for launching the swf, but would allow much better developer control over how the swf gets launched. This is implied by the docs, but doesn't seem to work currently
    1. Seconded by 558830634 22:05, 25 July 2007 (PDT). If a SWF is loaded in mock AJAX in response to a click, it should be allowed to start right away.
  5. Ability to specify multiple recipient IDs in Facebook's "compose message" URL. (Could even limit it at 2 or 3, if afraid of spam.)
    1. Seconded by 204381 21:35, 2 August 2007 (PDT). A limit of 2-3 is a little low though. If one is imposed at all, 20+ would be useful for our particular needs
    2. Seconded again by 509654615. Agree with 204381 that limit should be at least 20
    3. Seconded again by 720540513 01:09, 23 August 2007 (PDT). Agree limit should be 20+
    4. Seconded again by 4813235 02:40, 14 September 2007 (PDT)
    5. Seconded again by 120403972 11:17, 29 November 2007 (PST)
  6. Access to the user's address, not only to his country, state, city, and ZIP code
    1. Seconded by 500043862 16:57, 19 August 2007 (PDT).
    2. Seconded Again by 545562223 11:30, 22 August 2007 (PDT)
  7. Request for a tag fb:website that would give the website for the user. This is part of the contact info and is currently not available... but it seems that it should available to friends, since there are fewer privacy issues than for the phone number or email. Sample usage: <fb:website uid="123423">Fred's website</fb:website>
    1. Seconded by 500043862 16:57, 19 August 2007 (PDT).
  8. Access to friends' phone numbers. Yes, I know, privacy. But I'm sick of people making "I lost my phone because I'm an idiot" groups, and want to write a phone book application.
    1. Seconded by 500043862 16:57, 19 August 2007 (PDT).
    2. Seconded Again by 41502060 08:03, 21 August 2007 (PDT)
    3. Seconded Again by 545562223 11:30, 22 August 2007 (PDT)
    4. Seconded Again by 786359552 15:20, 22 August 2007 (PDT). There is already a permission structure for phone numbers, why not extend it to the applications. Support for SIP URI phone numbers would be nice too.
    5. This is a dumb request, a phonebook already exists. Facebook just needs to publicize it. --1414620016 11:52, 24 August 2007 (PDT)
    6. Seconded by 546701489 13:54, 21 October 2007 (PDT)
    7. Seconded Again by 701472 10:09 22 April 2008 (EDT) - I want to solve a different problem with this than is solved by the facebook mobile phonebook.
    8. Seconded Again by 27223196 16:25, 21 May 2008 (PDT) - I want to write a script to generate vcard files for address book programs

fb:name - defaultNameIfUidNotRxists="Anonymous"

API Call to Access the Users Language Preference:

  1. Seconded Request to create a API call to get users language preference, this will help us write better globalized solution.

749918722 14:42, 17 March 2008 (PDT)

[edit] Rejected Requests

[edit] Completed Requests

  1. REST call to make FB flush (and re-fetch immediately, this is different to the "invalidate" request above) a cache entry for an fb:ref or an image.
    1. Use facebook.fbml.refreshImgSrc for an image or facebook.fbml.refreshRefUrl for a ref.