Introduction
The way Facebook integrates with external applications can be compared to how a proxy gate can serve pages produced by external servers. It passes the web browser request to the application server and then the page produced back to the web browser. It works just like that but:
* the external page is not served as it is to the client - but rather is a partially transformed and then inserted into the Facebook layout
* all requests from the browser are passed ad POST requests to the app server - this is because Facebook always adds additional parameters (like the facebook id of the user) to the request
This means that the page produced by the application can contain additional Facebook XML tags that are interpreted by Facebook and transformed for bigger HTML chunks, and also cannot contain some HTML tags, but the parameters, relative links work just as if the user was accessing the application server directly.
When producing the page the application server can use it's own databases and additionally it can contact Facebook using the REST api to get additional info.
Catalyst facebook apps.