我正在建立一个网站,我想在其上登录FB。除了我无法获取电子邮件地址外,登录部分几乎都可以。我正在使用PHP API。我已经设置了FB的权限以询问“电子邮件”,它说它可能需要几分钟,但已经过了一天,当我尝试使用我的FB帐户登录我的网站时它仍然不会要求电子邮件权限。
任何人都可以告诉我,哪有错误?
谢谢!
答案 0 :(得分:2)
首先..如果你正在使用php sdk ..只是输入你的应用程序想要在Facebook网站上的应用程序设置中的电子邮件权限这一事实不会这样做。您的PHP代码必须考虑到您要求电子邮件权限的事实。没有看到你的代码我不知道你是如何执行fb登录..但如果你使用facebook :: getLoginUrl()方法,请确保你设置范围参数包括电子邮件权限,即:
$params = array(
'scope' => 'read_stream, friends_likes, email',
'redirect_uri' => 'https://www.myapp.com/post_login_page'
);
$loginUrl = $facebook->getLoginUrl($params);
如果你已经这样做了......如果你进入应用程序中心并从你的应用程序中取消身份验证(例如点击应用程序旁边的小x右上角)怎么样? 然后回到你的应用程序并刷新几次,以便它识别出访问令牌已被撤销...并再次登录..在Facebook提示符下,它是否提到应用程序要求允许发送电子邮件?
如果您发现有效..那么这意味着您的问题是您的应用在您开始要求电子邮件权限之前使用旧的访问令牌。如果你还处于开发模式,你可以让你的开发人员/测试人员做同样的事情。如果没有,您可能需要以编程方式测试用户的活动令牌是否包含电子邮件权限..如果没有,则强制撤销令牌并指示用户返回登录。
另一方面..如果权限提示没有提及您的应用程序要求电子邮件权限,那么这意味着您的权限范围字符串或登录请求有问题,在这种情况下您需要发布您的代码以进一步评估
答案 1 :(得分:0)
您在Facebook中设置的权限仅适用于通过Facebook App Center转到您应用的用户。您需要更新登录代码才能申请“电子邮件”权限。