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()
我在这里遵循了 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()