Facebook SDK不提供用户电子邮件ID

时间:2014-12-24 12:39:08

标签: ios objective-c iphone

Facebook sdk没有在json对象中返回用户email_id。尝试了这么多方法,但没有找到解决方案。 Facebook实施所需的东西

1 - 将其他链接器标志更改为(-ObjC)

2 - 制作网址

在项目列表中添加facebook_id和名称

4 - 在故事板中使用UIView并为其分配FBLoginView类。

5分配和启动并提供读取权限。

这里是给予许可的代码:

_fbLoginVIew =[[FBLoginView alloc] init];

_fbLoginVIew.delegate=self;

_fbLoginVIew.readPermissions= @[@"public_profile", @"email", @"user_friends"];

和委托返回用户信息的方法:

- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user
{

    defaults=[NSUserDefaults standardUserDefaults];

    [defaults setValue:user.name forKey:@"name"];

    [defaults setValue:[user objectforkey:@"email"] forkey:@"email"];

    [defaults synchronize];

}

但在实施所有这些事情并寻找解决方案后,我仍然坚持我的问​​题。 请帮助解决这个问题。

由于

2 个答案:

答案 0 :(得分:1)

此问题是由于用户限制他/她的电子邮件显示在时间轴

因此,当您仅允许此

的权限时,您无法访问该内容

答案 1 :(得分:0)

实际上它非常简单。在初始化readPermissions时,您应该给出正确的FBLoginView

FBLoginView *loginView = 
    [[FBLoginView alloc] initWithReadPermissions:
        @[@"public_profile", @"email", @"user_friends"]];

或者,如果要在界面构建器上创建登录视图:

self.loginView.readPermissions = @[@"public_profile", @"email", @"user_friends"];

在视图控制器的viewDidLoad中。

有关Facebook的未来帮助,请阅读this

祝你好运!