繁体   English   中英

Facebook登录自动墙张贴和使用PHP MySQL数据库插入

[英]facebook login auto wall post and database insert using php mysql

我需要使用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应用程序时访问令牌都会更改,因此您不应该存储它,我还应该指出,大多数用户不太愿意授予对其帐户和新闻提要的脱机访问权限

您需要使用范围来访问扩展权限$loginUrl = $facebook->getLoginUrl(array( 'scope' => 'read_stream,etc')); 并确保请求此处定义的权限: https : //developers.facebook.com/docs/reference/login/extended-permissions/

正如我所说,要求最低限度是因为您可能会使用户退出您的应用程序,并使他们不太可能向您提供信息,因此他们必须在首次登录时确认访问权限。

最后尝试从查询中的列名中删除引号

$ins = "INSERT INTO `facebookusers` (facebook_id,name,email,gender) VALUES ('$facebook_id', '$name', '$email', '$gender')";

希望能帮助交配

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM