iOS Facebook 获取用户的电子邮件

2024-02-07

我尝试了 2000 多种方法来获取用户的电子邮件。我无法从 Facebook SDK 的图形 API 获取它。它不包含电子邮件属性。我还尝试手动将电子邮件属性添加到 FB 框架,但没有任何反应。是否可以下载第一个与 iOS 7 兼容的 FB SDK?它仍然具有电子邮件属性,不是吗?或者有没有其他方法可以获取真实的电子邮件,我必须与他们合作。我不需要[电子邮件受保护] /cdn-cgi/l/email-protection.

感谢您的任何建议。

EDIT

NSArray *permissions = @[@"email", @"public_profile"];
    [PFFacebookUtils logInWithPermissions:permissions block:^(PFUser *user, NSError *error) {
        if (!user) {
            if (!error) {
                NSLog(@"The user cancelled the Facebook login.");
            } else {
                NSLog(@"An error occurred: %@", error.localizedDescription);
            }


            if ([delegate respondsToSelector:@selector(commsDidLogin:)]) {
                [delegate commsDidLogin:NO];
            }
        } else {
            if (user.isNew) {
                NSLog(@"User signed up and logged in through Facebook!");
            } else {
                NSLog(@"User logged in through Facebook!");
            }

            [FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
                if (!error) {
                    PFUser *usere = [PFUser currentUser];
                    [usere setObject:[result objectForKey:@"first_name"] forKey:@"name"];
                    [usere setObject:[result objectForKey:@"last_name"] forKey:@"surname"];
                 //   [usere setObject:[result objectForKey:@"email"] forKey:@"mail"];
                    [usere saveEventually];
                     NSLog(@"user info: %@", result);
                        }
            }];

                }
                if ([delegate respondsToSelector:@selector(commsDidLogin:)]) {
                    [delegate commsDidLogin:YES];
                }
            }];
        }

我没有图形 API 的代码,

但对于新的 facebook sdk 版本 3,我有相应的代码。

-(void)openFbSession
{
    [[self appDelegate].session closeAndClearTokenInformation];

    NSArray *permissions =     [NSArray arrayWithObjects:@"email",@"user_location",@"user_birthday",@"user_hometown",nil];
    [self appDelegate].session = [[FBSession alloc] initWithPermissions:permissions];

    [[self appDelegate].session openWithCompletionHandler:^(FBSession *session,
                                                            FBSessionState status,
                                                            NSError *error) {
        if(!error)
        {
            NSLog(@"success");
            [self myFbInfo];
        }
        else
        {
            NSLog(@"failure");
        }

    }];
}

对于所有信息, myFbInfo 方法是

-(void)myFbInfo
{
    [FBSession setActiveSession:[self appDelegate].session];

    [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *FBuser, NSError *error) {
        if (error) {
            // Handle error
        }

        else {
            //NSString *userName = [FBuser name];
            //NSString *userImageURL = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large", [FBuser id]];
            NSLog(@"Name : %@",[FBuser name]);
            NSLog(@"first name : %@",[FBuser first_name]);
            NSLog(@"Last name : %@",[FBuser last_name]);
            NSLog(@"ID : %@",[FBuser id]);
            NSLog(@"username : %@",[FBuser username]);
            NSLog(@"Email : %@",[FBuser objectForKey:@"email"]);

            NSLog(@"user all info : %@",FBuser);

              }
    }];

}

EDIT


在appdelegate.h中

@property (strong, nonatomic) FBSession *session;

在appdelegate.m中

- (BOOL)application: (UIApplication *)application openURL: (NSURL *)url sourceApplication: (NSString *)sourceApplication annotation: (id)annotation
{
    //NSLog(@"FB or Linkedin clicked");
    return [self.session handleOpenURL:url];
}


- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [FBSession.activeSession handleDidBecomeActive];
}

- (void)applicationWillTerminate:(UIApplication *)application
{
    [self.session close];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS Facebook 获取用户的电子邮件 的相关文章

  • 在android中从SD卡上传图像到facebook

    我无法从 SD 卡上传 Facebook 上的图像 我使用了下面的代码 但它没有给我错误 但同时它没有上传图像 byte data null try FileInputStream fis new FileInputStream filep
  • Xcode 在代码签名身份中看不到我的开发人员证书

    我续订了 IOS 开发人员证书 从钥匙串中删除了旧证书 然后单击了我的证书 钥匙串中的一切看起来都很正常 我有分发 开发人员 WWDC 证书 每个配置文件看起来都有效 并带有绿色标记 在组织器中的团队和配置文件部分下 但在代码签名身份下的
  • iOS 使用 NSColor 与 UIColor?

    有什么区别UIColor and NSColor 什么时候会使用每一种 我碰到NSColor在试图弄清楚的同时UIColor用于 iOS 中的属性字符串 我理解使用UIColor对于 UIKit 等 但我不认为NSColor对于这种事情确实
  • Google Cloud Messaging 显示成功消息但未发送 iOS

    所以我在使用 Google Cloud Messaging 时遇到了一个非常奇怪的问题 我遇到的问题是它正在成功注册设备 并且当发送消息时我会收到来自 Google 的成功消息 但设备永远不会收到任何消息 我从 GCM 得到的消息是 res
  • 如何在 iOS 中将 Firebase 对象持久保存到磁盘?

    看起来Firebase http www firebase comiOS 实现不支持客户端模型的离线缓存 这在实践中意味着 对于需要身份验证的 Firebase 应用程序 您需要首先进行身份验证并等待 Firebase 完成登录 检查用户身
  • 在回调函数中调用目标c函数

    如何在回调函数中调用目标c函数 回调函数 static OSStatus inputRenderCallback void inRefCon AudioUnitRenderActionFlags ioActionFlags const Au
  • Facebook 分享按钮返回错误

    示例网址 这就是 Share JS 生成的内容 如果您访问链接 解码后 com 2011 09 2124 rugby world cup daily tonga beat japan 您可以查看源代码并查看开放图元标签 如果分享网址更改为
  • Outlook 有条件 CSS If 吗?

    我需要一些特定的 css 来发送 html 电子邮件 但仅限于 Outlook 我正在寻找相当于
  • 为具有多个目标和不同平台的项目编写 Podfile

    我正在准备一个支持 OS X 和 iOS 的 Pod 我的 pod 有一些自己的依赖项 这些依赖项在 podspec 文件中定义 因此我使用 Podfile 来管理我用来开发 pod 和运行测试的项目的依赖项 我正在使用 CocoaPods
  • 如何解决 iOS 6 SDK 中的 hidesBottomBarWhenPushed 行为异常的问题?

    我遇到了中描述的相同问题这个 OpenRadar 问题 http www openradar me 14670329 正如那里所说 摘要 UIViewController的hidesBottomBarWhenPushed属性 对于使用 iO
  • 与新 Apple Music 应用程序中相同的动态状态栏

    是否可以动态着色statusBar这是在新的苹果音乐应用程序 Edit iOS 8 4 中的新 Apple Music 应用程序具有此功能 打开应用程序 选择并播放歌曲 状态栏为白色 向下滑动播放器控制器以查看 我的音乐 控制器 它有黑色状
  • FB登录:登录成功后不知道如何获得响应

    我在我的网站上添加了一个 fblogin 按钮 工作正常 放置一个按钮 当用户单击它时 将打开一个用于登录的对话框 但我不知道登录成功后如何获得响应 请建议 您可以使用JS SDK来订阅该类型的事件 看看Facebook JavaScrip
  • Apple Developer 应用程序门户不再可以生成新的 Bundle Seed ID

    iOS 开发者门户中的新界面不再为您的应用程序 ID 提供 生成新的 按钮 取而代之的是 使用团队 ID 这将导致使用相同的种子 ID 任何人都知道为什么要进行更改以及您应该如何使用新的捆绑包种子 ID 随意补一些 不再可能生成新的种子 I
  • removeItemAtPath 完成

    我正在以这种方式删除路径上的文件 UIPanGestureRecognizer gesture UIPanGestureRecognizer sender UIButton button UIButton gesture view UIPa
  • 如何在Sprite Kit中实现鼠标关节?

    我已经在 iOS 上用 Cocos2d Box2d 编写了拖放功能的工作实现 我需要将它移植到 Sprite Kit 逻辑非常基本 当用户触摸屏幕时 找到手指下的精灵 在找到的精灵和场景的物理体之间创建鼠标关节 将关节的目标设置为触摸位置
  • 如何在 iOS 上固定证书的公钥

    在提高我们正在开发的 iOS 应用程序的安全性时 我们发现需要对服务器的 SSL 证书 全部或部分 进行 PIN 操作以防止中间人攻击 尽管有多种方法可以做到这一点 但当您搜索此内容时 我只找到了固定整个证书的示例 这种做法会带来一个问题
  • Android 发布到 facebook 墙,stream.publish 几天来就中断了

    我有很多使用 FB android sdk 发布的应用程序 github com facebook facebook android sdk 我所有使用 FB 的应用程序几天后就停止工作了 这必然是 FB 方面的更改或错误 因为我的应用程序
  • 子类 PFObject 上的 PFUser 属性

    我使用以下类 动态属性以及 m 文件中的 load 和 parseClassName 方法 对 PFObject 进行了子类化 interface DAOpponents PFObject
  • WKWebview 中的 iCLoud 文档选择器关闭容器视图

    我有一个 WKWebview 加载基于 Web 的 UI 我希望用户能够从其 iCloud 文档上传文件 我已授予正确的权限 并且可以浏览 iCloud 文档 但是 当我选择文件或单击取消按钮时 文档选择器视图也会关闭 WKWebview
  • 如何将自定义 C 代码放入 SwiftPM 包中?

    我正在尝试将 C 代码打包到 Swift 模块中 我们称之为CModule 一旦我将其放入项目的基本文件夹中 Swift模块 并配置了搜索路径 我可以在 Swift 文件中自动完成工作 并检测错误 警告 问题是 导入时它无法识别该模块 并且

随机推荐

  • 当某些列名可能不存在时使用 data.table::setnames()

    我有一个脚本返回一个data table其中将包含一组列 我想重命名其中一些列 但是setnames如果不是全部都存在则中断 有没有什么方法可以在不循环 错误捕获或与现有名称相交的情况下重命名 iris dt lt data table i
  • ??运算符未触发 DataTable DataRow 中的 System.DBNull 类型

    这是一个后续问题 Net C String Join 如果元素值为 null 如何输出 null 而不是空字符串 https stackoverflow com questions 16621347 net c sharp string j
  • 无法构造 - Jackson 的实例

    我正在使用 Jackson 并且遇到问题 当我尝试反序列化对象时出现以下错误 com fasterxml jackson databind JsonMappingException Can not construct instance of
  • 使用curl进行POST而不发送数据

    有没有办法使用curl发送POST请求而不发送任何数据 我们通常会发这样的帖子 curl data C mydata txt http 1 2 3 4 myapi 如果您省略 data你正在做一个 GET 操作 你怎么能省略它并仍然执行 P
  • C# 枚举范围

    获得范围 A Z 的方法是什么 Enumerable Range 1 100 Enumerable Range A Z 编辑 更新以包括达林的更正 在 NET 3 5 SP1 中 这可以工作 Enumerable Range A 26 Ca
  • Kibana Logstash ElasticSearch | Kibana Logstash ElasticSearch无法搜索未索引的字段

    我正在探索 ELK 堆栈并遇到一个问题 我已经生成了日志 将日志转发到logstash 日志采用JSON格式 因此它们被直接推送到ES中 仅在Logstash配置中使用JSON过滤器 连接并启动指向ES的Kibana 日志存储配置 filt
  • 使用 jsp/servlet 清理 URL?

    我计划使用 jsp 和 servlet 制作一个 CMS 谁能告诉我如何使用这种技术实现干净的网址 您可以尝试使用 urlrewritefilter http code google com p urlrewritefilter http
  • ora_rowscn 和 join 不能一起工作

    SELECT Rental Rental ora rowscn as TimeStamp FROM Rental inner join UserBranch on UserBranch fkBranchId Rental fkBranchI
  • JavaFX 对背景的影响

    我在用着this https stackoverflow com questions 22622034 frosted glass effect in javafx 22630754 22630754制作一个带有毛玻璃效果的iOS主题Jav
  • JavaScript 函数后的空格[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何按文件名和编号对文件列表进行排序?

    我在一个目录中有一堆文件 我试图根据它们的类型来获取它们 一旦我拥有它们 我想按文件名对它们进行排序 其中有一个数字 我想以这种方式对它们进行排序 我返回的文件是 file 1 txt file 2 txt file 10 txt file
  • C++ 未打印字符串

    抱歉这个菜鸟问题 我是一名新手程序员 正在从 C 过渡到 C 我可以轻松地编写一个程序 以相同的方式用 C 语言反转字符串 只需进行一些细微的更改 但是用 C 编写此程序 为什么它不打印任何内容 include
  • 如何让 Nock 和 Mocha 协同工作?

    我正在尝试使用 nock 来拦截 模拟我的应用程序中的一些 HTTP 流量以进行测试 我们的应用程序对我们的另一个网站进行身份验证 我需要 nock 来模拟 HTTP 200 带有 JSON 数据 和 HTTP 401 没有数据 来测试用户
  • dotnet core 方法“ValidateOptions”...没有实现

    我正在构建一个 NET Core 解决方案 该解决方案构建得很好 但是当我尝试发布它时 它崩溃并出现以下错误 Method ValidateOptions in type Microsoft CodeAnalysis CSharp CSha
  • Google Play Alpha 测试 - 无可用更新

    我已经有一段时间没有更新我的 Android 应用程序了 现在我想使用 Alpha 测试来运行应用内购买功能的一些测试 问题是 我不知道如何使用 Play 商店在我的设备上安装 Alpha 版本 我做了以下事情 创建APK于Android
  • 更改嵌套在克隆表中的输入/选择字段的名称属性以进行动态表单输入 - Javascript

    我正在设计一个动态输入表单 它本质上充当用户 GUI 用于在 mysql 数据库中创建表 JavaScript var counter 0 function moreFields counter var newFields document
  • 如何在Python中初始化二维数组?

    我已经得到了伪代码 for i 1 to 3 for j 1 to 3 board i j 0 next j next i 我如何在 python 中创建这个 想法是使用 for 循环创建一个 3 x 3 数组 并将所有元素设置为 0 如果
  • GeoPandas 和 OSMnx - 在地图上绘制

    我想在地图上绘制我的 Geopandas df 作为背景 我想要该地区的 道路 地图 喜欢 OSMnx 包 我试图弄清楚如何使用它的输出 shapefile 网络 作为我的情节背景 import osmnx as ox G ox core
  • Response.Redirect 与 Server.Transfer - 重定向作为“建议”

    所以我读了一篇article http www csharpfriends com Articles getArticle aspx articleID 15在 Response Redirect 上 与 Server Transfer 相
  • iOS Facebook 获取用户的电子邮件

    我尝试了 2000 多种方法来获取用户的电子邮件 我无法从 Facebook SDK 的图形 API 获取它 它不包含电子邮件属性 我还尝试手动将电子邮件属性添加到 FB 框架 但没有任何反应 是否可以下载第一个与 iOS 7 兼容的 FB