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

前の回答は正しいです。ここに、ユーザーが新規ユーザーかリピーターかを確認するために使用するコードを示します。次に、それらが新しい場合はデータベースに挿入します。

// 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 に答える
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 に答える