Facebook 2.6 Open Graph没有电子邮件

时间:2016-11-14 13:51:39

标签: php facebook facebook-graph-api

我正在使用PHP SDk访问FB中的用户信息以进行登录过程。我有一个测试应用程序设置,一切正常,我收到以下回复(包括电子邮件):

bject(Facebook\GraphNodes\GraphNode) {
[protected] graphObjectMap => array()
[protected] items => array(
    'id' => 'XXXXX',
    'email' => 'strXXXXXXX@gmail.com',
    'currency' => object(Facebook\GraphNodes\GraphNode) {
        [protected] graphObjectMap => array()
        [protected] items => array(
            'currency_offset' => (int) 100,
            'usd_exchange' => (float) 1.24596885,
            'usd_exchange_inverse' => (float) 0.802588283,
            'user_currency' => 'GBP'
        )
    },
    'first_name' => 'XXX',
    'last_name' => 'XXX',
    'picture' => object(Facebook\GraphNodes\GraphNode) {
        [protected] graphObjectMap => array()
        [protected] items => array(
            'is_silhouette' => false,
            'url' => 'https://scontent.xx.fbcdn.net/v/t1.0-1/s200x200/XXXXXX'
        )
    }
)

}

如果我切换到实时应用,则响应没有电子邮件:

object(Facebook\GraphNodes\GraphNode) {
[protected] graphObjectMap => array()
[protected] items => array(
    'id' => 'XXXXX',
    'currency' => object(Facebook\GraphNodes\GraphNode) {
        [protected] graphObjectMap => array()
        [protected] items => array(
            'currency_offset' => (int) 100,
            'usd_exchange' => (float) 1.24596885,
            'usd_exchange_inverse' => (float) 0.802588283,
            'user_currency' => 'GBP'
        )
    },
    'first_name' => 'XXXX',
    'last_name' => 'XXXX',
    'picture' => object(Facebook\GraphNodes\GraphNode) {
        [protected] graphObjectMap => array()
        [protected] items => array(
            'is_silhouette' => false,
            'url' => 'https://scontent.xx.fbcdn.net/v/t1.0-1/s200x200/XXXXXXXX'
        )
    }
)

}

我所有改变的是应用ID和秘密。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

为了访问电子邮件,您的应用需要在请求用户权限时明确要求发送电子邮件(我怀疑您在开始时设置了该电子邮件)。

如果您未获得用户自己的许可,您也将无法访问它。

根据Facebook https://developers.facebook.com/docs/facebook-login/permissions#reference-email

的文档
  

电子邮件

     

通过用户对象上的email属性提供对该人的主电子邮件地址的访问。

     

请注意,即使您申请电子邮件权限,也不能保证您会收到电子邮件地址。例如,如果有人使用电话号码而不是电子邮件地址注册Facebook,则电子邮件字段可能为空。