使用解析框架进行Facebook集成

iPh*_*Dev 1 iphone facebook ios-simulator ios6 xcode4.5

我使用解析框架与我的应用程序完成了Facebook集成,所以我如何添加注销按钮以及对用户的权限,下面提到的图像是我的应用程序屏幕短,以及如何在我的代码中获得好的按钮按下事件...?

登录后这是我的应用程序主屏幕

Hig*_*asy 7

登录
在您的app delegate中,这些行应该存在:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[Parse setApplicationId:@"YOUR_APPLICATION_ID"
              clientKey:@"YOUR_CLIENT_KEY"];
[PFFacebookUtils initializeWithApplicationId:@"YOUR_FB_APP_ID"];

// Override point for customization after application launch.
return YES;
}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [PFFacebookUtils handleOpenURL:url];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [PFFacebookUtils handleOpenURL:url];
}
Run Code Online (Sandbox Code Playgroud)

这将确保在启动时初始化解析并与您的Facebook应用程序连接.底部的两种方法是让您的应用启动屏幕登录Facebook并请求权限的方法.为了实际向用户显示该屏幕,所有必要的是一个调用类似于这个方法的按钮:

-(IBAction)facebookLoginButtonPressed:(id)sender {
    [self loginWithFacebook];
}

-(void)loginWithFacebook {
    NSArray *permissionsArray = @[@"publish_actions", @"email", @"user_location"];

    // Login PFUser using Facebook
    [PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {

        if (!user) {
            if (!error) {
                NSLog(@"Uh oh. The user cancelled the Facebook login.");
            } else {
                NSLog(@"Uh oh. An error occurred: %@", error);
            }
        } else {
            [self performSegueWithIdentifier:@"loginToFeed" sender:self];
        }
    }];
}
Run Code Online (Sandbox Code Playgroud)

你不应该需要ok的事件回调,当[PFFacebookUtils logInWithPermissions:block:]它返回时,它将执行你提供的块,使你能够转换为不同的ViewControllers或显示不同的功能.

注销
向要控制注销的任何视图添加按钮.然后IBAction为该按钮添加一个方法:

-(IBAction)logOutButtonPressed:(id)sender {
    [PFUser logOut];
    NSLog(@"User logged out!");
    [self dismissViewControllerAnimated:YES completion:^{}];
}
Run Code Online (Sandbox Code Playgroud)