从访问令牌中提取Facebook数据

时间:2013-05-10 13:22:03

标签: facebook web-scraping extract access-token

我正在尝试使用此网站https://www.oneall.com/将社交登录添加到测试网站。在设置代码和登录后,我仍然不知道如何从访问令牌中提取用户数据。这是我得到的链接:

http://MYACCOUNT.api.oneall.com/socialize/redirect.html?provider_connection_token=ACCESS在这里取消

我通过这样的回调页获得此代码

if ( ! empty ($_POST['connection_token']))
{
echo "Connection token received: ".$_POST['connection_token'];
}
else
{
echo "No connection token received";
}
if ( ! empty ($_POST['connection_token']))
{
$token = $_POST['connection_token'];
$site_subdomain = 'myaccountname';
$site_public_key = 'public key';
$site_private_key = 'private key';
$site_domain = $site_subdomain.'.api.oneall.com';
$resource_uri = 'https://'.$site_domain.'/connections/'.$token .'.json';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $resource_uri);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_USERPWD, $site_public_key . ":" . $site_private_key);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($curl, CURLOPT_FAILONERROR, 0);
 $result_json = curl_exec($curl);
if ($result_json === false)
{
echo 'Curl error: ' . curl_error($curl). '<br />';
echo 'Curl info: ' . curl_getinfo($curl). '<br />';
curl_close($curl);
}
else
{
curl_close($curl);
$json = json_decode ($result_json);
 $data = $json->response->result->data;
 if ($data->plugin->key == 'social_login')
{
  if ($data->plugin->data->status == 'success')
  {
    $user_token = $data->user->user_token;

    $user_id = GetUserIdForUserToken($user_token);

    if ($user_id === null)
    {
      LinkUserTokenToUserId ($user_token, $user_id);
    }
    else
    {
    }

    }
   }
  }
}

我现在需要学习如何提取数据以及通过此代码提取用户名的一些示例。

2 个答案:

答案 0 :(得分:1)

您可以使用访问令牌使用其api

从oneall获取连接详细信息
  

您使用connection_token获取连接详细信息(包括   用户的Facebook个人资料数据)。

示例 http://MYACCOUNT.api.oneall.com/connections/ACCESS TOKEN HERE.json - &gt;&gt;用于json格式的数据

oneall docs

答案 1 :(得分:-1)

获得用户令牌后,您需要对Facebook进行API调用,例如https://graph.facebook.com/me/?access_token={$access_token}

如果$access_token是正确的,Facebook应该返回用户的详细信息,包括姓名,用户名和您要求的任何其他详细信息。