2013-05-10 93 views
0

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

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

我通过回拨页面这样

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 
    { 
    } 

    } 
    } 
    } 
} 

我需要学习如何现在来提取数据和有关提取一个小例子得到这个代码用这个代码的用户名。

+0

我使用的是不同的PHP代码来获取的accessToken和检索用户数据,,,你想我发布它还是需要更新代码? – 2013-05-10 15:31:22

+0

使用onella.com的目的是为了支付多个网络登录,所以如果你发布你的代码会很好,如果你也更新我的代码,我会非常感谢你,如果你不介意。感谢您的回复。 – 2013-05-10 15:54:32

回答

-1

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

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

+0

这里是测试页,希望你试试 http://www.mawk3y.net/glogin/onella.php 我得到了访问令牌,但Facebook告诉我这是错误的(onella.come是向我发送访问令牌的来源) – 2013-05-10 14:38:56

+0

我在上面的代码中改变了一点点,以获得用户令牌而不是连接令牌 $ user_token = $ data-> user-> user_token; echo“user:”。$ user_token; 然后使用这样的代码 https://graph.facebook.com/me/?access_token={code here} 但我得到消息“:”无效的OAuth访问令牌 请检查http://www.mawk3y .net/glogin/onella.php – 2013-05-10 15:15:30

+0

您确定您在此处使用access_token,而不是Facebook给您的代码,应该交换为access_token? – 2013-05-11 15:23:06