このコードは、ユーザー データを取得してシリアル化し、データベースにスローします。完全ではないことはわかっていますが、見てください。自由な時間ができたらこれを編集する予定です。ユーザー データを base64 でシリアル化するのではなく、JSON としてエンコードすることをお勧めします。
<?php
require 'facebook.php'; // USE FACEBOOK PHP SDK
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'APPID',
'secret' => 'APPSECRET',
));
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
// Get User ID
$user = $facebook->getUser();
/* We may or may not have this data based on whether the user is logged in.
If we have a $user id here, it means we know the user is logged into
Facebook, but we don't know if the access token is valid. An access
token is invalid if the user logged out of Facebook. */
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$dt = $facebook->api('/me');
$lk = $facebook->api('/me/likes');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
// Handler for Login Status
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(array("scope" => "email,user_birthday,user_likes,user_work_history,user_location,user_education_history"));
}
// ----------------------------------------------------------------------------------------
?>
<?php if (!$user): header ('Location:'.$loginUrl.''); //CHECKS IF USER IS LOGGED IN
else:
$con = mysql_connect("DATABASE IP","USERNAME","PASS");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
else{
$id = base64_encode(serialize($dt['id']));
$work = base64_encode(serialize($dt['work']));
$location = base64_encode(serialize($dt['location']));
$education = base64_encode(serialize($dt['education']));
$f_n = $dt['first_name'];
$l_n = $dt['last_name'];
$link = $dt['link'];
$u_n = $dt['username'];
$bd = $dt['birthday'];
$gdr = $dt['gender'];
$em = $dt['email'];
$sportsS = base64_encode(serialize($dt['sports']));
$languagedt = $dt['languages'];
foreach($languagedt as $item){
$language[] = $item;
}
$languageS = base64_encode(serialize($language));
$lk_dt = $lk['data'];
foreach($lk_dt as $value)
{
if ($value['category'] == "Musician/band" || $value['category'] == "Song" ){
$fav_music[] = $value;
}
if($value['category'] == "Tv show"){
$fav_tvshow[] = $value;
}
if($value['category'] == "Book"){
$fav_book[] = $value;
}
if($value['category'] == "Movie"){
$fav_movie[] = $value;
}
if($value['category'] == "Games/toys"){
$fav_games[] = $value;
}
if($value['category'] == "Interest"){
$interest[] = $value;
}
if($value['category'] == "Professional sports team"){
$sport_team[] = $value;
}
// next is likes
if ($value['category'] != "Movie" && $value['category'] != "Musician/band" && $value['category'] != "Book" && $value['category'] != "Games/toys" && $value['category'] != "Tv show" && $value['category'] != "Professional sports team" && $value['category'] != "Interest" && $value['category'] != "Tv show" && $value['category'] != "Professional sports team" && $value['category'] != "Song") {
$likes[] = $value;
}
}
$fav_musicS = base64_encode(serialize($fav_music));
$fav_movieS = base64_encode(serialize($fav_movie));
$fav_bookS = base64_encode(serialize($fav_book));
$fav_tvshowS = base64_encode(serialize($fav_tvshow));
$sport_teamS = base64_encode(serialize($sport_team));
$fav_gamesS = base64_encode(serialize($fav_games));
$interestS = base64_encode(serialize($interest));
$likesS = base64_encode(serialize($likes));
mysql_select_db("database", $con);
$result = mysql_query("SELECT id, firstdone FROM users WHERE id='$id'");
$row = mysql_fetch_array($result);
$f_dn = $row['firstdone'];
$ctrl = $row['id'];
if (!$ctrl){
mysql_query("INSERT INTO users (id, language, fav_sports, education, location, work, first_name, last_name, link, username, birthday, gender, email, fav_music, fav_movie, fav_books, fav_tv, fav_sport, fav_games, interest, likes)
VALUES ('$id', '$languageS', '$sportsS', '$education', '$location', '$work', '$f_n', '$l_n', '$link', '$u_n', '$bd', '$gdr', '$em', '$fav_musicS', '$fav_movieS', '$fav_bookS', '$fav_tvshowS', '$sport_teamS', '$fav_gamesS', '$interestS', '$likesS')");
if ($_SERVER['REQUEST_URI'] == '/index.php') {
header('Location: /theprofilepage');}
}
else{
mysql_query("UPDATE users SET language='$languageS', fav_sports='$sportsS', first_name='$f_n', last_name='$l_n', link='$link', username='$u_n', birthday='$bd', gender='$gdr', email='$em', fav_music='$fav_musicS', fav_movie='$fav_movieS', fav_books='$fav_bookS', fav_tv='$fav_tvshowS', fav_sport='$sport_teamS', fav_games='$fav_gamesS', interest='$interestS', likes='$likesS', work='$work', location='$location', education='$education' WHERE id='$id'");
}
mysql_close($con);
}endif
?>
JavaScriptで必要な値を取得し、「場所」関数によってヘッダーの値として渡すことができます.phpは$ _GETでそれらの情報を取得します.PHP SDKを使用して認証を行うことをお勧めします. しかし、あなたは選択します。また、それらを一緒に使用することもできます。