这段代码获取用户数据并将其序列化,然后扔到数据库中,我知道它并不完美,但请看一看。当我有空闲时间时,我将对其进行编辑,然后我建议将用户数据编码为 JSON,而不是 base64 序列化,因为将来进行查询搜索会更容易。
<?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 进行身份验证。但你选择。你也可以一起使用它们。