The existing website uses Facebook OAuth for login. The plan is that soon that certain events on the site will be posted to the user’s timeline. The “userA watched xxx” kind of thing.
We’re also at the stage of starting an iPhone app to connect to the website’s data API. If the user has authenticated to the website with the mobile app using the facebook login:
- would the mobile app need access to the Facebook oauth keys? I’m guess not, as the user would do something, and the website would have the credentials stored to post to facebook, but I’m not sure.
- would there in fact be 2 apps, one that is facebook based and one that is not?
Apologies if this is really basic information I’m asking, but I’ve not developed Facebook apps previously and the information I look at isn’t always clear.
In my apps, I code two authentication flows, one for facebook users, and one for users without facebook (this is the typical, create your account, and subsequently login with your username and password). So one app, two login flows.
Regarding the app accessing the Facebook oauth keys, if you are coding with the Facebook iOS SDK, you won’t even need to worry about the oauth key itself, as it’s totally encapsulated by the SDK. You’ll simply invoke methods to trigger authentication, and then once the user is authenticated, you can call other methods to invoke certain aspects of SDK/API.
The Facebook iOS SDK supports all the functionality you’ll need to make the posts directly from the app itself. You won’t need to make an API call to your server, to then make a second call to the Facebook API. Just handle all that from the app directly. So if your app does depend on a successful API call to your server, prior to posting to Facebook, make that API call, wait for the response (that either includes additional data, or a success:true flag), and then make the post to the Facebook via the Facebook iOS SDK.
The Facebook iOS SDK docs are AWESOME these days, and the code samples are even better. Check them out at:
http://developers.facebook.com/ios/