的Facebook SDK IOS得到
问题描述:
我使用facebook sdk 3.0
用户信息,但我面对困难的时候,我试图让像电子邮件等的Facebook SDK IOS得到
我的代码用户的信息:
- (IBAction)fbLogin:(id)sender {
[self facebookLogin];
}
-(void) facebookLogin
{
[FBSession openActiveSessionWithReadPermissions:@[@"email"]
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
switch (state) {
case FBSessionStateOpen:
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *FBuser, NSError *error) {
if (error) {
}
else {
name = [FBuser name];
email = [FBuser objectForKey:@"email"];
pic = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large", [FBuser objectID]];
}
}];
[self checkUser];
break;
}
}];
}
我的代码打开Facebook登录,并要求授权,但在此之后,它返回到我的应用程序显示/什么都没有。 我通过断点诊断,发现行switch (state)
后,它只是退出,没有提供任何信息。
我的问题是,我如何通过facebook sdk 3.0
获取用户的电子邮件。
答
添加下面的应用程序委托:
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
}
不要忘了进口头:
#import "FacebookSDK.h"
'如果(状态== FBSessionStateOpen)'这个断点后,线程退出。 – developer
你能检查你是否有一个有效的会话吗?并告诉我你得到了什么!我将编辑我的答案以添加检查有效会话的方法! 或者你有什么状态? – Atrash
让我检查并确认你。 – developer