繼使用 Facebook SDK成功後,接下來實現使用 Facebook SDK 登入。
想要使用Facebook 登入,首先要下載 Facebook SDK 及建立申請 Facebook App,詳情請看文章使用 Facebook SDK。
我這邊的例子是在畫面上製作一個臉書登入按鈕,讓按鈕連結到method來觸發功能。
/** Theme: Facebook SDK Login IDE: Xcode 9 Language: Objective C Date: 107/01/05 Author: HappyMan Blog: https://cg2010studio.com/ */ -(IBAction)facebookLoginButtonClicked:(UIButton *)button { FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; // if([FBSDKAccessToken currentAccessToken]) { // [login logOut]; // NSLog(@"Logout"); // } // else { [login logInWithReadPermissions: @[@"public_profile", @"email", @"user_friends"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { if (error) { DXLog(@"Process error"); } else if (result.isCancelled) { DXLog(@"Cancelled"); } else { DXLog(@"Logged in"); // 記錄登入方式 [[SDUserDefaults sharedManager] setLoginType:SDLoginTypeStringFacebook]; [[AppDelegate sharedAppDelegate] setupMainView]; [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"id, name, email, first_name, last_name, gender, picture, friends"}] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error1) { DXLog(@"result: %@", result); if(!error1){ DXLog(@"user fbid:%@", [result objectForKey:@"id"]); DXLog(@"user name:%@", [result objectForKey:@"name"]); DXLog(@"user email:%@", [result objectForKey:@"email"]); DXLog(@"accessToken:%@", [[FBSDKAccessToken currentAccessToken] tokenString]); }else{ DXLog(@"error"); } }]; } }]; // } }
登入後可取得使用者的臉書資料,是根據我們給定的欄位:
id, name, email, first_name, last_name, gender, picture, friends
回傳的資料如:
result: {
“first_name" = “HappyMan”;
friends = {
data = (
{
id = 10211090051554777;
name = “Jason Chiou";
}
);
paging = {
};
summary = {
“total_count" = 1;
};
};
gender = male;
id = 472214149840777;
“last_name" = “Chiou";
name = “HappyMan Chiou";
picture = {
data = {
height = 50;
“is_silhouette" = 0;
url = “https://cg2010studio.com”;
width = 50;
};
};
}
有些資料需要跟Facebook後台申請權限,通過審核後才能如願取得喔!
參考:【iOS/Facebook】在 iOS 上加入 Facebook 登入功能、Facebook SDK 取得帳號資料、使用臉書獲取使用者資料 (Using Facebook to Obtain User Information)。
Comments on: "[iOS] 使用 Facebook SDK 登入" (1)
[…] 成功後,就可以來使用 Facebook SDK 登入取得使用者資訊囉~ […]
讚讚