ユーザーが拡張認証ダイアログを介してアプリを認証し、キャンバス ページにリダイレクトされたときに、キャンバス ページが初めてのアクセスであることを知る方法はありますか?
質問する
160 次
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 に答える