我尝试使用cURL手动使用Facebook登录。数据正常返回,但用户数据不正确(user_id与登录用户不同)...有人知道错误数据的来源吗?
我的代码:
$code = "MY PARAM URL";
//Getting my access_token to debug_token
$retornoAccess = $this->getCurl(array('url' =>
'https://graph.facebook.com/oauth/access_token?client_id=MY_APP_ID&redirect_uri=MY_URI&client_secret=MY_SECRET&code=' . $code . '#_=_'));
//Getting infos: user_id, app_id, is_valid, etc
$access_debug = explode('&', $retornoAccess);
$access_debug = array_pop(explode('=', $access_debug[0]));
$dadosAcesso = $this->getCurl(array('url' => 'https://graph.facebook.com/debug_token?input_token=' . $access_debug . '&access_token=' . $options['facebook']['app']['accesstoken']));
public function getCurl($params)
{
if(is_array($params)){
$header[] = 'Expect:';
$header[] = 'Content-Type: application/json';
$ch = curl_init();
$options = array();
$options[CURLOPT_URL] = $params['url'];
$options[CURLOPT_HTTPHEADER] = $header;
$options[CURLOPT_SSL_VERIFYPEER] = false;
$options[CURLOPT_RETURNTRANSFER] = true;
$options[CURLINFO_HEADER_OUT] = true;
curl_setopt_array($ch, $options);
$ret = curl_exec($ch);
$err = curl_error($ch);
$info = curl_getinfo($ch);
curl_close($ch);
return json_decode($ret, true);
}
return false;
}
答案 0 :(得分:1)
您可能会看到应用程序范围的user_id。这是使用Graph API v2-0设计的。有关详细信息,请参阅Weird Facebook ids的答案。
如果您将Graph Explorer与相应的应用程序一起使用,则可以验证这一点。