Facebook身份验证问题,500服务器错误

时间:2013-03-27 15:07:32

标签: facebook facebook-graph-api facebook-login facebook-authentication

从昨天起,我的网站在尝试登录网站时从Facebook服务器端获得500服务器错误,我确定我没有做任何更新我的代码,我搜索了一切,但没有找到任何解决方案。 请检查我的代码并帮助我。

<?php
session_start();
require 'config/fbconfig.php';
require 'facebook/facebook.php';
include"core.php";
connectdb();

$facebook = new Facebook(array(
            'appId' => APP_ID,
            'secret' => APP_SECRET,
            ));


    $user = $facebook->getUser();


if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }






    if (!empty($user_profile )) {
        # User info ok? Let's print it (Here we will be adding the login and registering routines)

        $username = $user_profile['name'];
             $uid2 = $user_profile['id'];
         $email = $user_profile['email'];
         $validated = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE email='".$email."'"));
       if($validated[0]== 1){
           $get_data = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE email='".$email."'"));
           $visits = $get_data['visits'];
           $visits2 = $get_data['visits']+1;
           $sid= keygen(30);
           mysql_query("UPDATE users SET fbid='".$uid2."', visits= '".$visits2."', sid='".$sid."' WHERE email='".$email."'");


           $_SESSION['sid'] = $sid;
           $expire=time()+60*60*24*30;
           setcookie("sid", $_SESSION['sid'], $expire); 

           if($get_data['cat_sec']==0){
              header('Location: cat_select.php');
               exit();

           }else{
               if(isset($_SESSION['curl'])){
                header('Location:'.$_SESSION['curl']); 
             }else{
               header('Location: index.php');
             }
               exit();

           }
       }else{
         $sid= keygen(30);
         $register = mysql_query("INSERT INTO users SET fname='".$username."', email='".$email."', fbid='".$uid2."', active='1' , sid='".$sid."'");  

           include_once"reg_fb_mail.php";
           header('Location: cat_select.php');
               exit();

       }

        $permissions = $facebook->api("/me/permissions");
    if (array_key_exists('publish_stream', $permissions['data'][0])) {

        $attachment = array(
    'message' => 'my web site message',
    'name' => 'www.mywebsite.com!',
    'caption' => "caption.",
    'link' => 'http://www.website.com',
    'description' => 'website description gose here ',
    'picture' => 'http://website.com/images/fb.png',
    'actions' => array(
        array(
            'name' => 'www.website.com',
            'link' => 'http://www.website.com'
        )
    )
);


$result = $facebook->api('/me/feed/', 'post', $attachment);
} 

    } else {
        # For testing purposes, if there was an error, let's kill the script
        die("There was an error.");
    }
} else {
    # There's no active session, let's generate one
    $login_url = $facebook->getLoginUrl(array( 'scope' => 'email,publish_stream'));
    header("Location: " . $login_url);
}
?>

我附上了所有代码。请帮我解决这个问题。 谢谢。

1 个答案:

答案 0 :(得分:0)

错误数字输出!问题不在于此代码。在Facebook设置页面,我发现APP ID之前有一个空格。它现在固定.. Facebook会根据身份验证中的get参数修剪或删除空格。 如果有一个无效字符,它在Facebook中获得500服务器错误。 我认为这是一个严重的安全问题。 Hal Rotholz - 谢谢你的线索..