2012-08-09 50 views
1

当用户通过增强型身份验证对话框验证我的应用程序,并将其重定向到画布页时,我的画布页是否知道其首次访问?facebook身份验证后首次访问

+0

你不得不在FB用户ID保存到自己的数据库 - 那么你可以,如果看它用户访问您的画布页面之前一直在那里。 – CBroe 2012-08-09 12:43:21

+0

让我重新说明我的问题:有没有一种方法可以让我知道用户通过单击允许来到增强型身份验证对话框的我的应用程序页面? – SavaMinic 2012-08-10 12:38:45

回答

1

你可能会从Facebook用户ID后的用户重定向到画布页: 这里是例子:

require_once("facebook.php"); 

$config = array(); 
$config[‘appId’] = 'YOUR_APP_ID'; 
$config[‘secret’] = 'YOUR_APP_SECRET'; 
$config[‘fileUpload’] = false; // optional 

$facebook = new Facebook($config); 

$app->user_id = $facebook->getUser(); 

你获得USER_ID后,你可以将它保存在数据库中,这样就可以知道用户是否第一次访问。

0

上一个答案是正确的,这里是我用来检查他们是新用户还是返回用户的代码。然后,如果它们是新的,我将它们插入到数据库中。

// Get the app User ID 
$user = $facebook->getUser(); 


$seeif = mysql_num_rows(mysql_query("SELECT id FROM users WHERE fbid='$user' LIMIT 1")); 

if ($seeif == "1") { 
// already exists 
} else { 
// insert new user 
mysql_query("INSERT INTO users (fbid) VALUES('$user') ") 
or die(mysql_error()); 
} 
0

虽然以前的答案是正确的,但从长远来看构建应用程序时,这可能对您更有用。

记住这依赖于你具有开放的数据库连接,以及Facebook的PHP SDK

// this brings back more info print_r($user) 
$user = $facebook->api('/me'); 
$exists = mysql_num_rows(mysql_query("SELECT id FROM users WHERE fbid='" . $user['id'] . "')); 

if ($exists > 0) { 
    // already exists 
} else { 
    // insert new user 
    mysql_query("INSERT INTO users (fbid) VALUES('" . $user['id'] . "') ") or die(mysql_error()); 

    // do something else (post to timeline?) 
    // look up facebook feed for more info on posting 
try { 
    // Post Message to feed. 
    $facebook->api('/me/feed', 'POST', $msg); 
} catch (FacebookApiException $e) { 
    error_log($e); 
    } 
}