2014-12-18 2 views
0

모든 것이 localhost에서 완벽하게 작동하지만 서버에서는 작동하지 않습니다. (빈 크롬 페이지 및 쇼 HTTP IE에서 500 내부 서버 오류를 보여주는. 나는 PHP 파일의 상단에 코드를 추가하여 오류 로그를 얻기 위해 시도했지만 로그하지만 빈 페이지 얻지 못했습니다)페이스 북의 PHP SDK v4가 서버에서 빈 페이지를 반환하지만 로컬 호스트에서 작동합니다.

error_reporting(E_ALL); 
ini_set("display_errors", 1); 

서버 CURL SSL을 사용하는 PHP 5.5로 실행 중입니다. facebook 설정에서 서버 IP를 허용 목록으로 설정하려고했지만 작동하지 않습니다. 서버의 Facebook ID와 비밀번호가 맞습니다. 나는 그런 다음 사용자 프로필

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

facebook.php

을 확인하고 가져 오기위한 AJAX에 의해 facebook.php을 통과

FB.login(function(response) { 
      if (response.authResponse) { 
       var access_token = response.authResponse.accessToken; 

토큰에 대한 사용자 액세스를 얻기 위해 페이스 북 자바 스크립트 SDK를 사용하고

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()-> 

나는> < 희망 누군가가 도움을 줄 수 며칠 동안 여기에 stucked 있었어요. 고마워요!

+0

사람이 내가 라이브 서버에 FacebookRequest을 할 수없는 이유를 모르고있다? – aitsu

답변

0

근본 원인을 찾았습니다.

일부 코드에서 숨기기 때문에 오류를 표시 할 수 없으므로 오류 숨김 코드 다음에 오류 표시 코드를 넣은 후에 오류가 발생했습니다.

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 

이며,이 solution 다음, 바로 해결 서버 및 문제에 mbstring을 가능하게!

호프는 이와 유사한 문제가 발생한 사용자를 도울 수 있기를 바랍니다.

감사합니다.