Facebook App Types - facebook

This is a pretty basic question. I wasn't clear after a bit of research what types of Facebook apps one could create.
I think one kind is a web app which gets incorporated into Facebook web pages. I think it kind of works like an iFrame. Am I understanding this correctly?
I'm not clear about iOS and Android apps. Are they separate mobile apps that use Facebook authentication OR do they get incorporated into Facebook's own mobile app?

Canvas (resp. Facebook Web Games, as it is now known, after Facebook decided to name a new, more directly end-user facing feature "Canvas" for marketing reasons) and Page Tab apps are the ones where the content is shown on Facebook in an iframe. You can use the API & FB login on external websites, too.
Native Android and iOS apps are individual, stand-alone apps, they are not integrated into the official Facebook app; but are using the Facebook platform -
login & API - to create a "social experience" for their users. Distribution of those apps to the end user usually works via the official Play/App store; in addition to the review Facebook requires, Google and Apple might require additional review before your app gets in there.

Related

How can i develop a Facebook app for Pages?

I'm trying to develop a facebook app for facebook pages (Ex: the page has a tab that opens the app directly in the facebook interface).
Unfortunatly i'm not finding any documentation about... I found docs for classical facebook apps, (Ex: a website that want to load some data from facebook).
I don't understand how this kind of apps work.. Are the apps only iframes that show one of my server php? how can I define this relation?

Facebook login integration with phonegap

I'm new using facebook for developers, I want to use Facebook Login for my app developed in phonegap, where I want that when users want to login, it opens facebook standard page for them to continue with the process and return data to my app. But the first thing I found was that there were many solutions:
The Login Flow for iOS
The Login Flow for Android
The Login Flow for Web (without JavaScript SDK)
But none for what I want. I also found facebook github's solutions but, it seems to be only for Android or iOs, but not both of them:
https://github.com/phonegap/phonegap-facebook-plugin
So I have some doubts:
¿What solution should I use for phonegap integration?
I know that I need an app-id that I can find it at facebook's developers page https://developers.facebook.com/docs/facebook-login/login-flow-for-web-no-jssdk/ , but if that key is locally saved, at the devices, would it be safe?
Thanks

Facebook native mobile application and mobile browser sharing session

I have a website which allows login via facebook functionality and displays photos from facebook.
While accessing from a mobile browser I would like the website to automatically login(when the click on FB login button, without entering username and password) if the user is already logged in via the native FB application (iOS or andriod). It seems to be that I can do that by building a native iOS or android application and use facebook single sign on feature. Is it possible to do that without having the user install anything on their mobile device?
That is not possible.
Auto-Login relies on auth tokens that will be granted to a website or mobile app after a user approves an app. For security reasons, those tokens are tight to the cause they were issued for. Particularly, web tokens and mobile tokens are not interchangeable.
So you could build a native mobile app to get a "native token", but even if you would manage to (cookie-)inject it into a browser view, your website's backend couldn't use it.
More generally, you're raising an issue even facebook can't solve: Say you are using a facebook mobile app and logged in there. If you open facebook's web version on that very same phone, you'll have to log in there again. The root cause is the same as with above. Specifically, any native app is uncapable of setting arbitrary auth cookies into the OS browser. I personally believe this restriction will not fall, because it would have a large security impact - just imagine how any app could set (and possibly get) cookies for any website.
If they've never logged in facebook from their Mobile, how will your website ever know them ?
Is it possible to do that without having the user install anything on their mobile device?
Like PC's, users in a mobile device need to login in their phone in facebook's website before being eligible to login "automatically" to your website. When I say automatically, I mean they still have to go with the first time process of "Do you authorize this app/website to do X things on your account". That message is inevitable when using facebook's api on the web.
Hope this answers your question.
Is it possible to do that without having the user install anything on
their mobile device?
No this would not be possible. You need to have a native or hybrid app (phonegapped etc) to make it work. Mobile web apps run in a browser sandbox and without native code interface - you cannot get to the native SSO of FB on your mobile device
Did you have a look at this facebook page ? I'm not sure what you ask is possible, as basav said, but maybe you'll have some clues there.

Can Facebook's "Single Sign On" be achieved within a mobile web app?

It's my first posting on here (although I've been using this site for reference for quite some time).
I've been trying for several days now to find or dream up a way to use Facebook's "Single Sign On" from within a mobile web app (not a native iOS or Android app) to automatically sign a user into a web app if they are already logged into Facebook from the native Facebook app on their mobile device for example.
My limited knowledge is telling me that it can't be done since the mobile browser and the 'system' (iOS for example) are too separated (I can't, I don't think, have my mobile web app use or access the native Facebook app on a mobile device in any way).
I have found and read the iOS, Android AND Mobile documentation provided by Facebook (https://developers.facebook.com/docs/guides/mobile/) which all seems to make enough sense, but after days of trawling through everything else I could find on the subject there doesn't seem to be a way to use, for example, the Facebook app on an iPhone or Android device to automatically log a user in to my web app if he/she is already logged into Facebook.
I've read lots about doing this from within 3rd party native apps and also other people trying to achieve a similar thing from within Desktop apps but I'm trying and hoping to be able to achieve this from a web app running within a mobile web browser.
I'd be very grateful for any help, opinions or pointers in the right direction since I think this would be an excellent step forward in UI for mobile web apps to have (not just the native apps).
Many thanks in advance...
Probably a bit late to the party but in case anyone else is wondering yes it's possible with Cordova/Phonegap and the Facebook Connect Plugin: https://github.com/davejohnson/phonegap-plugin-facebook-connect/
Using the FB.getLoginStatus() method at startup allows to check if the user is already signed in with the native Facebook App and retrieve its profile. More details in the examples provided in the repo.
I have not yet implemented it myself, but seems possible according to:
http://developers.facebook.com/docs/mobile/web/build/#login

Facebook App vs. Facebook Connect site

I'm reading Facebook's documentation so I can figure out how to enable Facebook Connect on my site. What confuses me is which parts apply to Facebook applications and Facebook Connect, because I'll be reading along, thinking I'm learning about Facebook Connect, but then I'll reach a section that mentions Facebook applications. For example, here's an except from the page on Data.getCookies:
This method returns all cookies for a given user and application.
Cookies only apply to Web applications; they do not apply to desktop applications.
I think of my website as a Web application, but I can't tell if "Web applications" simultaneously refers to Facebook Connect sites and Facebook applications. How can I tell if what I'm reading applies to Facebook Connect and not just Facebook apps?
In that context, "Web applications" refers to canvas based apps with Facebook. "Desktop apps" is the other type mentioned there, and refers to a non-web app like a widget for your system tray in Windows.
I would look at the Facebook platform as a set of APIs:
Facebook canvas applications (Apps you use in FB. What users think of as "Facebook apps")
FBML / FBJS apps
Iframe canvas apps
Facebook desktop applications (Rare)
Facebook connect applications (Websites with elements of FB in them. CNN, Digg)
Web
iPhone
Note that all of these can access the Facebook API, the REST and FQL interface. Most of the documentation is for FBML canvas applications. On the left side of the Facebook developer wiki you can see a few top-level options:
API (you can always use this)
FBML (canvas apps only)
XFBML (Facebook connect only)
FQL (you can always use this)
FBJS (mostly canvas apps, some connect functionality)
I'm sure you've seen:
http://wiki.developers.facebook.com/index.php/Facebook_Connect
Which is the main connect documentation. I hope this helps you get organized.
Good luck!
Many aspects of the FB web applications (like FBML, FQL) are common for both FB apps and FB Connect. I would say that FB Connect is more likely to be used on sites implementing more FB's visual elements (FBML). Additionally, FB Connect can be used off-line (where the user does not have a current session directly with FB).
I admit that the documentation is fairly scattered and often quite vague - but once you keep reading more and more about it, the concepts become clearer. At least that was my experience.
I recently found a great blog post that describes the differences between FBML canvas pages, iframe canvas pages and Facebook Connect sites. It focuses more on the technical difference between FBML and iframe apps, but since these technologies are mentioned throughout Facebook's documentation, it seems almost essential for Facebook Connect developers to have a basic understanding of regular Facebook apps, even though they won't be working with them directly. I think knowing about this page a few months ago would have saved me alot of heartache.