在facebook身份验证后首次访问

时间:2012-08-09 12:40:41

标签: facebook facebook-authentication

当用户通过增强型身份验证对话框验证我的应用程序并重定向到画布页面时,我的画布页是否知道他第一次访问时有什么方法?

3 个答案:

答案 0 :(得分:1)

用户重定向到canvas页面后,您可能会从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后,您可以将其保存在数据库中,以便了解用户是否第一次访问。

答案 1 :(得分: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());
}

答案 2 :(得分: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);
    }
}