【问题标题】:Facebook AccessToken from iOS doesn't have access to email permissioniOS 的 Facebook AccessToken 无权访问电子邮件权限
【发布时间】:2013-12-01 02:34:16
【问题描述】:

我的应用程序支持 Facebook 登录,并将很快发布到 Apple Appstore。我测试了一段时间的 Facebook 登录,直到现在它似乎一直有效。当我登录时,Facebook 返回的访问令牌没有电子邮件作为权限之一,我确实需要电子邮件来注册我的应用程序。在我的应用程序设置下的 developer.facebook.com 上,我有以下设置

 User & Friend Permissions: email user_about_me user_birthday
 Extended Permissions: read_friendlists

我还从我的设备中获取了 accessToken 并使用了https://developers.facebook.com/tools/debug/ 并将我的访问令牌粘贴在其中,但它没有电子邮件作为范围之一(列出的唯一范围是 user_friends)。

Facebook 上的应用设置为实时(非沙盒),因此每个人都可以访问它。同样在 iOS 上,即使我通过成功登录 Facebook 让我的应用程序访问 Facebook 后,我的应用程序也没有列在“设置”->“隐私”->“Facebook”下。当我按下 Facebook 登录时,它会打开 Facebook 网站并显示以下内容“‘我的应用’将收到以下信息:您的公开个人资料和好友列表。”它并没有在其中提到电子邮件。

我已从 iOS 中删除 Facebook 应用程序,从 iOS 设置中注销 Facebook 帐户,重新启动设备,还删除了我的应用程序并再次安装,但 iOS 似乎没有任何效果。我们确实有我们的应用程序的 Android 版本,并且可以正常工作(能够接收电子邮件)没有任何问题。

感谢任何帮助。

已编辑:

另外在 Facebook 上,它说我的应用程序在 10 月 25 日访问了电子邮件(用于我的个人资料)。所以它能够在那天访问电子邮件。

【问题讨论】:

    标签: ios facebook facebook-login


    【解决方案1】:

    但是,您请求登录时,您必须在基本权限之上手动请求电子邮件。为此,您可以在 readPermissions 下放置一个包含字符串 email 的数组,如下所示...

    fbLoginView.readPermissions = @[@"email"]
    

    或在openActiveSessionWithReadPermissions:allowLoginUI:completionHandler 中将第一个参数设为@[@"email"]

    奇怪的是,我发现应用权限通常与应用获取的权限不相关。

    【讨论】:

    • 在我不必这样做之前,并且未经任何许可,它可以在另一个应用程序中运行。但是,我只能按照您的建议设置读取权限来修复它。谢谢。
    猜你喜欢
    • 2014-07-23
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多