繼使用 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)。


![[iOS] 使用 Facebook SDK 登入後台.png](https://cg2010studio.com/wp-content/uploads/2018/01/ios-e4bdbfe794a8-facebook-sdk-e799bbe585a5e5be8ce58fb0.png?w=434&h=481)
Comments on: "[iOS] 使用 Facebook SDK 登入" (1)
[…] 成功後,就可以來使用 Facebook SDK 登入取得使用者資訊囉~ […]
讚讚