おはようございます。Facebook にログインした後、ようやく Facebook のユーザー名をデータベースに保存することができました。唯一の問題は、Facebook ログイン後にユーザーがリダイレクトされるページをリロードする必要があることです (最初は空のページしか表示されません)。すでにすべてのコードを投稿しているので、以前の質問を参照してください。
更新: ページを初めて更新する必要があることに気付きました (ユーザー情報がまだデータベースに保存されていない場合は、ページがすばやく適切に読み込まれます。助けてください!;-)
UPDATE2: 新しいユーザーが追加された後、ページを (1 回だけ) 自動更新する方法はありますか? どうもありがとう!
更新 3: コードを投稿します....ページを更新したときにのみ機能します....何か考えはありますか?
<?php
mysql_connect('host', 'username', 'password');
mysql_select_db('table');
require 'library/facebook.php';
// Create our Application instance
$facebook = new Facebook(array(
'appId' => 'MYID',
'secret' => 'MYSECRET',
'cookie' => true));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}else{
header('location: index.php');
}
$query = mysql_query("SELECT * FROM users WHERE oauth_provider = 'facebook' AND oauth_uid = ". $user_profile['id']);
$result = mysql_fetch_array($query);
if(empty($result)){
$query = mysql_query("INSERT INTO users (oauth_provider, oauth_uid, username) VALUES ('facebook', {$user_profile['id']}, '{$user_profile['name']}')");
$query = msyql_query("SELECT * FROM users WHERE id = " . mysql_insert_id());
$result = mysql_fetch_array($query);
}
if ($user) {
$paramsout = array('next'=>'http://www.mywebsite/test/logout.php');
$logoutUrl = $facebook->getLogoutUrl($paramsout);
}
?>
更新 4*****: 解決策が見つかりました。以下の私の答えを見ることができます。みんなに感謝します。