Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.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
FacebookPHPSDKV4在服务器上返回空白页,但在本地主机上工作_Php_Server_Facebook Php Sdk - Fatal编程技术网

FacebookPHPSDKV4在服务器上返回空白页,但在本地主机上工作

FacebookPHPSDKV4在服务器上返回空白页,但在本地主机上工作,php,server,facebook-php-sdk,Php,Server,Facebook Php Sdk,在localhost中,一切都很正常,但在服务器上却不正常。(显示Chrome的空白页,并在IE中显示HTTP 500内部服务器错误。我试图通过在php文件顶部添加代码来获取错误日志,但未能获取日志,但显示空白页) 服务器使用PHP5.5运行,启用了CURL SSL。我曾尝试在facebook设置中将服务器IP设置为白名单,但效果不佳。服务器中的Facebook id和密码是正确的 我正在使用Facebook Javascript SDK获取用户访问令牌 FB.login(function(re

在localhost中,一切都很正常,但在服务器上却不正常。(显示Chrome的空白页,并在IE中显示HTTP 500内部服务器错误。我试图通过在php文件顶部添加代码来获取错误日志,但未能获取日志,但显示空白页)

服务器使用PHP5.5运行,启用了CURL SSL。我曾尝试在facebook设置中将服务器IP设置为白名单,但效果不佳。服务器中的Facebook id和密码是正确的

我正在使用Facebook Javascript SDK获取用户访问令牌

FB.login(function(response) {
            if (response.authResponse) {
                var access_token = response.authResponse.accessToken;
然后通过AJAX传递到facebook.php以检查和获取用户配置文件

$.ajax({
    type: "POST",
    url: "facebook.php",
    data: 'access_token='+access_token
facebook.php

require 'FB_php_sdk_v4/autoload.php';

use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;

FacebookSession::setDefaultApplication('app_id', 'app_secret');
$session = new FacebookSession($_POST['access_token']);

// get GraphUser info by Facebook API
try {
  $me = (new FacebookRequest(
    $session, 'GET', '/me'
  ))->execute()->getGraphObject(GraphUser::className());
  $first_name = $me->getFirstName();
  $uid = $me->getId();
} catch (FacebookRequestException $e) {
  $code = $e->getCode();
  $error_msg = $e->getMessage();
  echo $code.$error_msg;
}
我尝试了不同的场景,发现当执行FacebookRequest时,页面将变为空白

$me = (new FacebookRequest(
        $session, 'GET', '/me'
      ))->execute()->

我在这里呆了几天了,希望有人能帮我。非常感谢

我找到了根本原因

错误无法显示,因为我在某些代码中隐藏了它,所以在将错误显示代码放在这些错误隐藏代码之后,发现了错误

error_reporting(E_ALL);
ini_set("display_errors", 1); 
错误是

Fatal error: Call to undefined function Facebook\mb_substr() in /xxx/facebook/php-sdk-v4/src/Facebook/FacebookCurlHttpClient.php on line 253
接下来,只需在服务器中启用mbstring,问题就解决了

希望这能帮助遇到类似问题的人

谢谢

我想它不见了

$helper = new FacebookRedirectLoginHelper(URL_REDIRECT);
参考:

有人知道我为什么不能在live server中发出FacebookRequest吗?
$helper = new FacebookRedirectLoginHelper(URL_REDIRECT);