Facebook批处理API不返回用户电子邮件ID
Posted
技术标签:
【中文标题】Facebook批处理API不返回用户电子邮件ID【英文标题】:Facebook batch API not returning user email id 【发布时间】:2012-12-10 22:31:34 【问题描述】:我正在使用FB批处理API进行用户登录,这是API调用
$queries = array(
array('method' => 'GET', 'relative_url' => '/'.$user),
array('method' => 'GET', 'relative_url' => '/'.$user.'/home?limit=50'),
array('method' => 'GET', 'relative_url' => '/'.$user.'/friends'),
array('method' => 'GET', 'relative_url' => '/'.$user.'/photos?limit=6'),
);
// POST your queries to the batch endpoint on the graph.
try
$batchResponse = $facebook->api('?batch='.json_encode($queries), 'POST');
catch(Exception $o)
error_log($o);
//Return values are indexed in order of the original array, content is in ['body'] as a JSON
//string. Decode for use as a php array.
$user_info = json_decode($batchResponse[0]['body'], TRUE);
$feed = json_decode($batchResponse[1]['body'], TRUE);
$friends_list = json_decode($batchResponse[2]['body'], TRUE);
$photos = json_decode($batchResponse[3]['body'], TRUE);
当我打印 user_info 变量 print_r($user_info)
时,我得到了这个数组,但它没有给我用户 email id。我不知道为什么?我浏览了文档但没有找到解决方案。如何才能做到这一点?
如果是由于身份验证,我如何向 API 发送受信任的参数,并且身份验证仅适用于电子邮件地址而不适用于其他字段?
Array
(
[id] => 1000015567757
[name] =>Name
[first_name] => First name
[last_name] => Last name
[link] => http://www.facebook.com/sach.ch
[username] => sachtawa
[birthday] => 12/13/1987
[hometown] => Array
(
[id] => 1000015534545
[name] => Patna, India
)
[location] => Array
(
[id] => 106442706060302
[name] => Pune, Maharashtra
)
[gender] => male
[timezone] => 6
[locale] => en_US
[verified] => 1
[updated_time] => 2012-12-13T04:11:12+0000
)
感谢您的关注
【问题讨论】:
【参考方案1】:要阅读用户的电子邮件,您需要适当的权限https://developers.facebook.com/docs/reference/login/#permissions
意味着您必须明确要求获得阅读权限
【讨论】:
感谢您的输入,但我仍然在努力实现这一点。我使用了parse_signed_request
函数,但我收到函数重新声明错误,如果我打印请求数组,我会得到多个数组中的字段,然后是上面的错误。如果你告诉我我需要使用哪些函数来实现它会很有帮助。实际上我是新手,并试图了解这个功能是如何工作的。
当您让用户授权您的应用时,您会要求他们提供哪些用户权限?
感谢您的投入,我能够使用 FB 提供的不同 API 来获得他们更新的安全补丁。以上是关于Facebook批处理API不返回用户电子邮件ID的主要内容,如果未能解决你的问题,请参考以下文章
我们如何从facebook发送api的用户ID获取Page-scoped-id?