iOSでFacebookLoginしよう!もちobjective-cでね。②

iOSでFacebookLoginしよう!もちobjective-cでね。の第二回です。

前回はこちら。iOSでFacebookLoginしよう!もちobjective-cでね。

ではXcodeを開いてゴリゴリと書いていきましょう。

お楽しみのハードコーディング

まずはAppDelegateで下準備が必要です。

AppDelegate.m
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    [FBSDKLoginButton class];
       
    return [[FBSDKApplicationDelegate sharedInstance]application:application didFinishLaunchingWithOptions:launchOptions];
}

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

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

を追加します。

次にviewControllerに書いていきます。

//viewController.h

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

@property (strong, nonatomic) IBOutlet FBSDKLoginButton *loginButton;

 

//viewController.m

- (void)viewDidLoad {
    [super viewDidLoad];
//ログインボタンを生成し、permissionを設定。この場合はstoryboardを使用して作成してます。
_loginButton = [[FBSDKLoginButton alloc]init];
    self.loginButton.readPermissions = @[@"public_profile",@"user_friends",@"email"];
}

それでfacebookの情報を取得するにはこのようにします。

    if ([FBSDKAccessToken currentAccessToken]) {
        NSLog(@"exist access token");
        //go to next
        [[[FBSDKGraphRequest alloc]initWithGraphPath:@"me" parameters:nil]startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
            NSLog(@"fetchUser%@",result);
            NSLog(@"fetchUserID%@",result[@"id"]);
        }];

ログをみてみると

fetchUser{
    email = "********@gmail.com";
    "first_name" = Naoya;
    gender = male;
    id = 855858164510183;
    "last_name" = Hanai;
    link = "https://www.facebook.com/app_scoped_user_id/855858164510183/";
    locale = "en_US";
    name = "Naoya  Hanai";
    timezone = 9;
    "updated_time" = "2015-05-30T00:43:22+0000";
    verified = 1;
}

こんな感じで出てきますので

NSLog(@"fetchUserID%@",result[@"id"]);

という風に取得しましょう。

プロフィール写真だけなぜか別で

FBSDKProfilePictureView* _profileView = [[FBSDKProfilePictureView alloc]init];
_profileView.profileID = result[@"id"];//userID

で FBSDKProfilePictureViewのprofileIDにuserIDを入れてあげると表示できるようになります。

 

About the author: naoyahanai