2015-05-22 26 views
5

Đăng nhập và Đăng xuất đang hoạt động chính xác. Theo FacebookFBSDKLoginButtonDelegate không kích hoạt các phương thức ủy nhiệm

"Ứng dụng của bạn có thể nhận được thông báo về kết quả đăng nhập hoặc các sự kiện logout. Để làm được điều này gán một đại biểu để FBSDKLoginButton xác nhận để giao thức FBSDKLoginButtonDelegate."

Tôi đã thêm FBSDKLoginButtonDelegate để điều khiển quan điểm của tôi trong đó có các tài sản sau đây:

@property (weak, nonatomic) IBOutlet FBSDKLoginButton *FacebookButton; 

và .m (thực hiện) tập tin có:

@interface firstVC() 
<FBSDKLoginButtonDelegate> 

@end 

nhưng vấn đề là rằng FBSDKLoginButtonDelegate không gọi điện thoại:

- (void) loginButton: (FBSDKLoginButton *)loginButton 
didCompleteWithResult: (FBSDKLoginManagerLoginResult *)result 
       error: (NSError *)error{ 

    NSLog(@"facebook login button test"); 


} 

và khi đăng xuất không đang kêu gọi:

- (void) loginButtonDidLogOut:(FBSDKLoginButton *)loginButton{ 
    NSLog(@"facebook logout button test"); 
} 

Ngoài ra tôi đã tuyên bố phương pháp nói trên trong phần đầu giữa @ interface và @end

+1

Trong appdelegate ..had bạn khai báo bất cứ điều gì trong phương pháp openurl? –

Trả lời

7

tôi phải chắc chắn rằng lớp của nút là FBSDKLoginButton thay vì UIButton, mà tôi đã thực hiện:

@property (weak, nonatomic) IBOutlet FBSDKLoginButton *FacebookButton; 

Một khi tôi đã làm điều đó và thực hiện hai lớp nói trên trong câu hỏi, sau đó sửa chữa là để thiết lập các nút đại biểu để tự trên viewDidLoad trong file thi hành:

[FacebookButton setDelegate:self]; 
+0

Theo quy ước đặt tên obj-C, đặt tên chính xác là "faceBookButton" – BootMaker

-1

thêm những dòng để viewDidLoad

[_loginFaceBook setReadPermissions: @[@"public_profile",@"email"]]; 
[_loginFaceBook setDelegate:self]; 
[FBSDKProfile enableUpdatesOnAccessTokenChange:YES]; 
0

của bạn tôi nghĩ rằng câu trả lời ConfusedDeer là không hợp lệ với phiên bản hiện hành. Bởi vì ngay cả các tài liệu dường như đã lỗi thời.

Công việc xung quanh tôi thấy, đang sử dụng;

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkLogIn) name: FBSDKAccessTokenDidChangeNotification object:nil]; 

đoạn mã bên trên, bên trong ứng dụng: openURL được gọi bởi Ứng dụng Facebook. Trong bộ chọn, tôi đã thực hiện công việc cần thiết sau khi đăng nhập.

Lưu ý: Chức năng tương tự sẽ được gọi ở mọi thay đổi trạng thái mã thông báo truy cập, vì vậy bạn nên sao lưu mã này bằng logic của riêng bạn. Ít nhất cho đến khi Facebook sửa tài liệu hoặc mã.

Các vấn đề liên quan