iOS FBSDKLoginManager 收到邮件

iOS FBSDKLoginManager get email

我在这里遵循了 SDK 的 Facebook 教程: https://developers.facebook.com/docs/facebook-login/ios/v2.0

我的问题是我可以获取用户信息但无法获取电子邮件,它不在当前配置文件中。我有名字、姓氏、用户 ID 等。

在哪里可以找到电子邮件字段,因为当我这样做时 "if ([result.grantedPermissions containsObject:@"电子邮件"])"

它告诉我用户已授予电子邮件。

您是否尝试过以下方法:

if ([result.grantedPermissions containsObject:@"email"]) { 
    NSLog(@"Granted all permission");
    if ([FBSDKAccessToken currentAccessToken]) {
        [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
           if (!error) {
               NSLog(@"%@",result);
           }
        }];
    }
} else {
    NSLog(@"Not granted");
}

添加一个参数'email'以获取当前用户的电子邮件。从我认为 SDK 版本 4.9 开始,'fields' 参数是获取用户电子邮件所必需的。 (虽然我没有检查以前的 SDK 版本)

if ([FBSDKAccessToken currentAccessToken])
{
    NSDictionary *param = @{@"fields" : @"email"};
    [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:param] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
    if (!error) {
                    NSLog(@"%@",result);
                }
    }];
 }

让用户知道您请求了电子邮件

的权限
 let requestMe:FBSDKGraphRequest = FBSDKGraphRequest.init(graphPath: "/me", parameters: ["fields": "id,email, first_name, last_name, gender, picture"])


    let connection : FBSDKGraphRequestConnection = FBSDKGraphRequestConnection()



            connection.add(requestMe, completionHandler: { (con, results, error) in

                //access_token

                if ((error) == nil)

                {


                    let dic = results as! NSDictionary

                    let email = (dic.value(forKey: "email"))




                }
                else

                {


                }

            })


            connection.start()