使用php mysql的facebook登录自动墙贴和数据库插入
我需要一个登录系统使用facebook,这里有一些要求,我需要作为facebook登录,自动墙后登录时,在我的网站第一次。需要将用户名、电子邮件、facebookid、访问令牌插入mysql。我已经创建了facebook应用程序,当我用这个代码测试facebook登录工作和重定向到我的页面,但没有墙上的帖子和数据库插入使用php mysql的facebook登录自动墙贴和数据库插入,php,facebook,Php,Facebook,我需要一个登录系统使用facebook,这里有一些要求,我需要作为facebook登录,自动墙后登录时,在我的网站第一次。需要将用户名、电子邮件、facebookid、访问令牌插入mysql。我已经创建了facebook应用程序,当我用这个代码测试facebook登录工作和重定向到我的页面,但没有墙上的帖子和数据库插入 <?php require_once('config.php'); require_once 'facebook.php'; $facebook = new Faceboo
<?php
require_once('config.php');
require_once 'facebook.php';
$facebook = new Facebook(array(
'appId' => '##########',
'secret' => '#######################',
'cookie' => true
));
$user = $facebook->getUser();
$access_token = $facebook->getAccessToken();
if($user)
{
$udata = $facebook->api($user);
$facebook_id=$udata['id'];
$name=$u['name'];
$email=$u['email'];
$gender=$u['gender'];
$query = mysql_query("SELECT * FROM facebookusers WHERE facebook_id = '$facebook_id' ");
$count=mysql_num_rows($query);
if($count == 0)
{
$ins = "INSERT INTO `facebookusers` (`facebook_id`, `name`, `email`, `gender`, `access_token`)
VALUES ('$facebook_id', '$name', '$email', '$gender', '$access_token')";
$result = mysql_query($ins) or die('Failed to connect to server: ' . mysql_error());
$news = array(
'access_token' => '$access_token',
'message' => 'Test Message',
'name' => 'Facebook Application Test Link',
'link' => 'mydomain.com',
'caption' => 'Test Caption',
'description' => 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
'picture' => './picture.png'
);
$facebook->api('/me/feed', 'POST', $news);
}
?>
<?php
}
else
{
$loginUrl = $facebook->getLoginUrl(array( 'req_perms' => 'email,user_birthday,status_update,offline_access'));
echo '<a href="'.$loginUrl.'"><img src="facebook.png" title="Login with Facebook" /></a>';
}
?>
每次用户使用您的网站或Facebook应用程序时,访问令牌都会发生变化,因此您不应该存储它,我还应该指出,大多数用户不会太愿意授予其帐户和新闻提要的脱机访问权限 您需要使用scope来访问扩展权限
$loginUrl=$facebook->getLoginUrl(数组('scope'=>'read_stream,etc')代码>
并确保请求此处定义的权限:
正如我所说,要求最低限度,因为你可能会让用户停止使用你的应用程序,让他们不太可能向你提供他们的信息,他们必须在第一次登录时确认访问权限
最后,尝试从查询中的列名中去掉引号
$ins = "INSERT INTO `facebookusers` (facebook_id,name,email,gender) VALUES ('$facebook_id', '$name', '$email', '$gender')";
希望对mate有所帮助你能粘贴你的php错误日志吗?