Parseでfacebookログインしてみる。x-Code,objective-c編②

Parseでfacebookログインしてみる。x-Code,objective-c編第2弾です。

前回のFrameworkや設定の話はこちら。

Parseでfacebookログインしてみる。x-Code,objective-c編①

x-codeで書いていきましょう。

xcodeでごりごり

まずはParseとFacebookの下準備が必要ですのでAppDelegateに書いていきます。

#import <Parse/Parse.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <PFFacebookUtils.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [Parse enableLocalDatastore];

    [Parse setApplicationId:@"your parse id"
                  clientKey:@"your parse key"];
    
    [PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];

    [PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions];
    [FBSDKLoginButton class];

    return [[FBSDKApplicationDelegate sharedInstance]application:application didFinishLaunchingWithOptions:launchOptions];

}

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
    return [[FBSDKApplicationDelegate sharedInstance]application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
    
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [FBSDKAppEvents activateApp];
}

で次にView controllerか何かにログインの設定を書いていきましょう。

//ViewController.h

#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <Parse/Parse.h>
#import <PFFacebookUtils.h>
#import "signUpAndLogInController.h"
#import <ParseUI/ParseUI.h>

viewController.m

- (void)viewDidLoad {
    [super viewDidLoad];
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc]init];
    [signUpAndLogInController signUpAndLoginWithFacebook:login];
}

別でsignUpAndLogInControllerを作ってもらって

signUpAndLogInController.h
#import <UIKit/UIKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <Parse/Parse.h>
#import <PFFacebookUtils.h>

@interface signUpAndLogInController : NSObject

+(void)signUpAndLoginWithFacebook:(FBSDKLoginManager *)loginManager;

@end

 

signUpAndLogInController.m
+(void)signUpAndLoginWithFacebook:(FBSDKLoginManager *)loginManager{
    [PFFacebookUtils logInInBackgroundWithReadPermissions:@[@"public_profile",@"user_friends"]  block:^(PFUser *user,NSError *error){
        if(!user){
            NSLog(@"error%@",error);
        }else if (user.isNew){
            NSLog(@"signup with facebook");
        }else{
            NSLog(@"success login  with facebook");
        }
    }];
}

とこんな風に書いてもらえるとParse側で新規ユーザーならサインアップ、ユーザーがいればログインといった形にしてくれます。

Parse側を見てみるとこんな感じでUserが増えていることがわかります。

parseloginwithfacebook

ご指摘、ご質問はツイッターにお願いします。

About the author: naoyahanai