1

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

4

3 回答 3

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后,可以将其保存到数据库中,这样就可以知道用户是否是第一次访问。

于 2012-08-09T13:10:58.480 回答
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);
    }
}
于 2013-08-18T01:19:49.283 回答
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());
}
于 2012-09-03T01:00:22.133 回答