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