Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a developer who has never personally partaken in social media (in any form) for reasons completely outside the scope of this question. I am "off the grid" (no Facebook, Twitter, etc accounts). I'm currently building a web app and would like the app to have a presence on Facebook, and possibly even "port" my app over as a Facebook app.

My understanding of Facebook Apps is that they're just normal web apps that get <iframe>d into a Facebook page. The app is actually hosted on your server (not FB's servers). But this got me thinking:

  1. Don't Facebook Apps have "profile pages"? Is there anything developers can do to customize the behavior of their own profile pages?
  2. Do apps have the ability to do things like MySpace themes used to do (i.e., customize and interact with User profile pages, Groups, etc.)?
  3. Do Facebook Apps gain any sort of extra capabilities (inside of Facebook) that a normal web app would not have? It seems to me like if all a Facebook App is, is an iframed-web app, that it would still need to communicate with Facebook via its many APIs, just like a normal app would have to, right?
  4. If it's not possible to write an app that can customize the UI or behavior of user profiles and other pages, then how do games like "Farmville" interact with User profiles so that you see updates to profiles like "John Smith reached level 2 of Farmville"?

Basically, I'm asking any battle-worn Facebook app developers if my understanding of Facebook Apps is correct, or if I'm missing anything big here.

It's my understanding that for security reasons (obviously) Facebook doesn't allow apps to customize anything outside of the iframe it lives in. So if I want my app to appear like it's "interacting" with its Facebook users, it looks like I just need to publish stuff to the users' news feeds to try and encourage people to use my app (please correct me if I'm wrong here!).

Thanks in advance for any corrections, clarifications, advice or suggestions!

share|improve this question
add comment

1 Answer 1

There are three platforms you can develop for with Facebook (FB).

  • Websites
  • FB Apps
  • Mobile

A great place to start is here: "https://developers.facebook.com/"

This one is for FB Apps: https://developers.facebook.com/docs/guides/canvas/

I found a video really helpful for connecting to the FB API, but this is via your own website: "http://www.youtube.com/watch?v=8383iyKYC1g"

From my understanding, all FB Apps are hosted on Facebook's servers.

To answer your queries:

  1. An FB Apps will have their own canvas, not the same as a profile page. You can however, simply create a page for you app to get more likes, and share it around.

  2. Yes there are certain features you have power to do as a developer, interact with user profile pages, Groups, etc. Here is a list of permissions you can access: https://developers.facebook.com/docs/authentication/permissions/

  3. I think just the speed of the user already being logged on Facebook would be one of the key benefits, rather than connecting via an external website. Also I think people would be more willing to trust your app on Facebook, than on an external site - especially since it will be an unknown app starting off.

  4. Yes, but the users have to accept this when they first sign up to use the app. It's initially displayed to them as a bunch of permissions on a prompt, which they must give permission for your app to utilise these features and most importantly so the user can use your app.

Yes, you will have to initially publish your app on your newsfeed, other pages and to other people to get users to use your app, otherwise no one will no about it.

Here's a good site that keeps you up-to-date with the latest and future Facebook code changes (They move fast with changes to the site - Agile methodology): "https://developers.facebook.com/blog/"

I highly recommend you make a Facebook account and start exploring the features it offers, in order to understand how to code an app to effectively use these various features of Facebook.

You may find this feature helpful for further automatically promoting your app - Open Graph, it was only recently implemented in 2011 - introduced at F8 2011 keynote Open Graph: "https://developers.facebook.com/docs/opengraph/"

Here's a video of F8 keynote 2011: "http://www.youtube.com/watch?v=9r46UeXCzoU"

Go to 38:30, and he shows you an example of how Spotify (a music FB app) utilises Open Graph to deliver 'light weight' updates in the ticker.

I hope this helps, I'm a beginner too, but these are just some useful sites I scouted across just out of curiosity. :) I've been a Facebook user since 2010.

Happy Developing.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.