Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php mysql的facebook登录自动墙贴和数据库插入_Php_Facebook - Fatal编程技术网

使用php mysql的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

我需要一个登录系统使用facebook,这里有一些要求,我需要作为facebook登录,自动墙后登录时,在我的网站第一次。需要将用户名、电子邮件、facebookid、访问令牌插入mysql。我已经创建了facebook应用程序,当我用这个代码测试facebook登录工作和重定向到我的页面,但没有墙上的帖子和数据库插入

<?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错误日志吗?