facebook iOS Tutorial (分享到facebook)

转自: http://developers.facebook.com/docs/guides/mobile/ios/


If you are an iOS developer then it's easy to get started with Facebook integration.

This tutorial walks you through the key steps to build your social iOS app.

  • Register your iOS App with Facebook
  • Install the iOS SDK
  • Enable Single Sign-On for your App
  • Add Log Out to your App
  • Use the Graph API
  • Use the Facebook Dialogs
  • Handle Errors

We also have additional code samples to get you started in the Sample Apps section.

Register your iOS App with Facebook

To begin integrating with the Facebook Platform, register your mobile website with Facebook and enter your app's basic information.


Note your App ID. You are going to need it when setting up your app in Xcode.


You application is now set up and you’re ready to begin integrating with Facebook!

Install the iOS SDK

Before you begin development with the Facebook iOS SDK, you will need to install the iOS dev tools, Git (the source control client we use for this SDK) and then clone the lastest version of the SDK from GitHub:

  • Install Xcode

  • Install Git

  • Clone the GitHub repository: git clone git://github.com/facebook/facebook-ios-sdk.git

Once you have everything installed you are now ready to set up your iOS app. First we will discuss Single Sign-On (SSO) which is a key implementation feature you should provide. After that section we will direct you to the SSO implementation where we walk you through the steps of setting up an iOS app.

Enable Single Sign-On for your App

In the initial release of the SDK, the authorize method always opened an inline dialog containing a UIWebView in which the authorization UI was shown to the user. Each iOS application has its own cookie jar, so this mechanism had a major disadvantage: it required users to enter their credentials separately for each app they authorized.

In the updated version of the SDK, we changed the authorization mechanism so that users no longer have to re-enter their credentials for every application on the device they want to authorize. The new mechanism relies on iOS's fast app switching. It works as follows:

If the app is running in a version of iOS that supports multitasking, and if the device has the Facebook app of version 3.2.3 or greater installed, the SDK attempts to open the authorization dialog withing the Facebook app. After the user grants or declines the authorization, the Facebook app redirects back to the calling app, passing the authorization token, expiration, and any other parameters the Facebook OAuth server may return.

If the device is running in a version of iOS that supports multitasking, but it doesn't have the Facebook app of version 3.2.3 or greater installed, the SDK will open the authorization dialog in Safari. After the user grants or revokes the authorization, Safari redirects back to the calling app. Similar to the Facebook app based authorization, this allows multiple applications to share the same Facebook user session through the Safari cookie.

If the app is running a version of iOS that does not support multitasking, the SDK uses the old mechanism of popping up an inline UIWebView, prompting the user to log in and grant access. The FBSessionDelegate is a callback interface that your app should implement: The delegate's methods will be invoked when the app successful logs in or logs out. Read the iOS SDK documentation for more details on this delegate.

Adding SSO support to your app is easy to do. Read the Single Sign-On document for a step-by-step guide on how to implement SSO.

Once you have set up a sample app with SSO support you can return to learn about some additional iOS SDK features.

Add Log Out to your App

When the user wants to stop using Facebook integration with your app, you can call the logout method to clear the app state and make a server request to invalidate the current access_token.

[facebook logout:self];

Note that logging out will not revoke your application's permissions, but will simply clear your application's access_token. If a user that has previously logged out of your app returns, they will simply see a notification that they are logging into your app, not a notification to grant permissions. To modify or revoke an application's permissions, the user must visit the"Applications, Games, and Websites" tab of their Facebook privacy settings dashboard. You can also revoke an app's permissions programmatically using a Graph API call.

Use the Graph API

The Facebook Graph API presents a simple, consistent view of the Facebook social graph, uniformly representing objects in the graph (e.g., people, photos, events, and fan pages) and the connections between them (e.g., friend relationships, shared content, and photo tags).

You can access the Graph API by passing the Graph Path to the request method. For example, to access information about the logged in user, call:

// get information about the currently logged in user
[facebook requestWithGraphPath:@"me" andDelegate:self];

// get the posts made by the "platform" page
[facebook requestWithGraphPath:@"platform/posts" andDelegate:self];

// get the logged-in user's friends
[facebook requestWithGraphPath:@"me/friends" andDelegate:self];

Your delegate object should implement the FBRequestDelegate interface to handle your request responses.

Note that the server response will be in JSON string format. The SDK uses an open source JSON libraryhttp://code.google.com/p/json-framework/ to parse the result. If a parsing error occurs, the SDK will callbackrequest:didFailWithError: in your delegate.

A successful request will callback request:didLoad: in your delegate. The result passed to your delegate can be anNSArray, if there are multiple results, or an NSDictionary if there is only a single result.

Advanced applications may want to provide their own custom parsing and/or error handling, depending on their individual needs.

Read the iOS SDK documentation for more details on the FBRequestDelegate delegate.

Use the Facebook Dialogs

The iOS SDK provides a method for displaying a Facebook Platform dialog. The currently supported dialogs are:

  • OAuth Dialog - the login and permissions dialogs used in the authorization flow.

  • Feed Dialog - the dialog used for publishing posts to a user's feed.

To invoke a dialog:

[facebook dialog:@"feed" andDelegate:self];

This allows you to provide basic Facebook functionality in your app with a singe line of code -- no need to build native dialogs, make API calls, or handle responses.

Handle Errors

Errors are handled by the FBRequestDelegate and FBDialogDelegate interfaces. Applications can implement these interfaces and specify delegates as necessary to handle any errors.

Read more about error handling in the iOS reference documentation.

Sample Apps

The Github repository contains a sample application that showcases the iOS SDK features.


你可能感兴趣的:(ios,application,Facebook,authorization,permissions,credentials)