Create an Appid Facebook Facebook Appid creating a link Creating time follows the lines of the facebook guide, you must specify an identifier during the registration time 
Then use this code
@interface LoginViewController : UIViewController<UIWebViewDelegate> @property(nonatomic,retain)UIWebView *webview; @property (nonatomic, retain) NSString *accessToken; @property(nonatomic,retain)UIActivityIndicatorView *FbActive; @end @interface LoginViewController () @end @implementation LoginViewController @synthesize accessToken,webview,FbActive; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //Removeing the UIWebview Cookies NSHTTPCookie *cookie; NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (cookie in [storage cookies]) { [storage deleteCookie:cookie]; } [[NSUserDefaults standardUserDefaults] synchronize]; } -(IBAction)fbLoginPage:(UIButton *)sender1 { NSString *facebookClientID =facebookAppId; NSString *redirectUri = @"http://www.facebook.com/connect/login_success.html"; NSString * extended_permissions=@ "user_photos,user_videos,publish_stream,offline_access,user_checkins,friends_checkins,email"; NSString *url_string = [NSString stringWithFormat:@"https://graph.facebook.com/oauth/authorize?client_id=%@&redirect_uri=%@&scope=%@&type=user_agent&display=touch", facebookClientID, redirectUri, extended_permissions]; NSURL *url = [NSURL URLWithString:url_string]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; CGRect webFrame =[self.view frame]; webFrame.origin.y = 0; UIWebView *aWebView = [[UIWebView alloc] initWithFrame:webFrame]; [aWebView setDelegate:self]; self.webview = aWebView; self.FbActive = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; self.FbActive.color=[UIColor darkGrayColor]; self.FbActive.center = CGPointMake(self.view.frame.size.width / 2, self.view.frame.size.height / 2); [self.FbActive startAnimating]; [webview loadRequest:request]; [self.webview addSubview:self.FbActive]; [self.view addSubview:webview]; } - (void)webViewDidFinishLoad:(UIWebView *)_webView { /** * Since there some server side redirecting involved, this method/function will be called several times * we're only interested when we see a url like: http://www.facebook.com/connect/login_success.html#access_token=.......... */ //get the url string [self.FbActive stopAnimating]; NSString *url_string = [((_webView.request).URL) absoluteString]; //looking for "access_token=" NSRange access_token_range = [url_string rangeOfString:@"access_token="]; //looking for "error_reason=user_denied" NSRange cancel_range = [url_string rangeOfString:@"error_reason=user_denied"]; //it exists? coolio, we have a token, now let parse it out.... if (access_token_range.length > 0) { //we want everything after the 'access_token=' thus the position where it starts + it length int from_index = access_token_range.location + access_token_range.length; NSString *access_token = [url_string substringFromIndex:from_index]; //finally we have to url decode the access token access_token = [access_token stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; //remove everything '&' (inclusive) onward... NSRange period_range = [access_token rangeOfString:@"&"]; //move beyond the . access_token = [access_token substringToIndex:period_range.location]; //store our request token.... self.accessToken = access_token; //remove our window // UIWindow* window = [UIApplication sharedApplication].keyWindow; // if (!window) { // window = [[UIApplication sharedApplication].windows objectAtIndex:0]; // } [self.webview removeFromSuperview]; self.webview=nil; //tell our callback function that we're done logging in :) // if ( (callbackObject != nil) && (callbackSelector != nil) ) { // [callbackObject performSelector:callbackSelector]; // } //the user pressed cancel } else if (cancel_range.length > 0) { //remove our window // UIWindow* window = [UIApplication sharedApplication].keyWindow; // if (!window) { // window = [[UIApplication sharedApplication].windows objectAtIndex:0]; // } [self.webview removeFromSuperview]; self.webview=nil; //tell our callback function that we're done logging in :) // if ( (callbackObject != nil) && (callbackSelector != nil) ) { // [callbackObject performSelector:callbackSelector]; // } } [self getuserdetailes]; } -(void)getuserdetailes { NSString * action=@ "me"; NSString *url_string = [NSString stringWithFormat:@"https://graph.facebook.com/%@?", action]; //tack on any get vars we have... NSDictionary *get_vars=nil; if ( (get_vars != nil) && ([get_vars count] > 0) ) { NSEnumerator *enumerator = [get_vars keyEnumerator]; NSString *key; NSString *value; while ((key = (NSString *)[enumerator nextObject])) { value = (NSString *)[get_vars objectForKey:key]; url_string = [NSString stringWithFormat:@"%@%@=%@&", url_string, key, value]; }//end while }//end if if (accessToken != nil) { //now that any variables have been appended, let attach the access token.... url_string = [NSString stringWithFormat:@"%@access_token=%@", url_string, self.accessToken]; url_string = [url_string stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; NSLog(@"%@",url_string); NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url_string]]; NSError *err; NSURLResponse *resp; NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:&resp error:&err]; NSString *stringResponse = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]; NSLog(@"%@",stringResponse); NSError* error; NSDictionary *FBResResjson = [NSJSONSerialization JSONObjectWithData:response//1 options:kNilOptions error:&error]; NSLog(@"%@",FBResResjson); } }
source share