Facebook登录集成未捕获异常"无法连接到主机"

Roh*_*nap 5 webserver facebook web-hosting facebook-php-sdk facebook-apps

我正在尝试使用YouTube上提供的PacketCode教程来学习facebook集成.代码在我的localhost上工作正常(即使通过登录到facebook进行测试).但是,当我尝试在Hostinger.in免费主机上运行代码时,它显示以下错误:

致命错误:未捕获的异常'Facebook\FacebookSDKException',消息'无法连接到主机'/home/u315632576/public_html/fblogin-basic-master/lib/Facebook/HttpClients/FacebookCurlHttpClient.php:142堆栈跟踪:#0 /home/u315632576/public_html/fblogin-basic-master/lib/Facebook/FacebookRequest.php(248):Facebook\HttpClients\FacebookCurlHttpClient-> send(' https://graph.f ...','GET',数组)#1 /home/u315632576/public_html/fblogin-basic-master/lib/Facebook/FacebookRedirectLoginHelper.php(146):Facebook\FacebookRequest-> execute()#2/home/u315632576/public_html/fblogin-basic-master /index.php(54):在第142行的/home/u315632576/public_html/fblogin-basic-master/lib/Facebook/HttpClients/FacebookCurlHttpClient.php中投放的Facebook\FacebookRedirectLoginHelper-> getSessionFromRedirect()#3 {main}

在此之后,我尝试通过在其付费托管服务器上请求付费主机所有者来运行此代码,但代码仍能正常工作.那么Hostinger.in免费主机服务器会出现什么问题呢?

代码是:

/* INCLUSION OF LIBRARY FILEs*/
    require_once( 'lib/Facebook/FacebookSession.php');
    require_once( 'lib/Facebook/FacebookRequest.php' );
    require_once( 'lib/Facebook/FacebookResponse.php' );
    require_once( 'lib/Facebook/FacebookSDKException.php' );
    require_once( 'lib/Facebook/FacebookRequestException.php' );
    require_once( 'lib/Facebook/FacebookRedirectLoginHelper.php');
    require_once( 'lib/Facebook/FacebookAuthorizationException.php' );
    require_once( 'lib/Facebook/GraphObject.php' );
    require_once( 'lib/Facebook/GraphUser.php' );
    require_once( 'lib/Facebook/GraphSessionInfo.php' );
    require_once( 'lib/Facebook/Entities/AccessToken.php');
    require_once( 'lib/Facebook/HttpClients/FacebookCurl.php' );
    require_once( 'lib/Facebook/HttpClients/FacebookHttpable.php');
    require_once( 'lib/Facebook/HttpClients/FacebookCurlHttpClient.php');

/* USE NAMESPACES */

    use Facebook\FacebookSession;
    use Facebook\FacebookRedirectLoginHelper;
    use Facebook\FacebookRequest;
    use Facebook\FacebookResponse;
    use Facebook\FacebookSDKException;
    use Facebook\FacebookRequestException;
    use Facebook\FacebookAuthorizationException;
    use Facebook\GraphObject;
    use Facebook\GraphUser;
    use Facebook\GraphSessionInfo;
    use Facebook\FacebookHttpable;
    use Facebook\FacebookCurlHttpClient;
    use Facebook\FacebookCurl;

/*PROCESS*/

    //1.Stat Session
     session_start();
    //2.Use app id,secret and redirect url
     $app_id = 'xyz';
     $app_secret = 'abcd';
     $redirect_url='http://www.rohansanap.com/fblogin-basic-master/';

     //3.Initialize application, create helper object and get fb sess
     FacebookSession::setDefaultApplication($app_id,$app_secret);
     $helper = new FacebookRedirectLoginHelper($redirect_url);
     $sess = $helper->getSessionFromRedirect();

    //4. if fb sess exists echo name 
        if(isset($sess)){
            //create request object,execute and capture response
        $request = new FacebookRequest($sess, 'GET', '/me');
        // from response get graph object
        $response = $request->execute();
        $graph = $response->getGraphObject(GraphUser::className());
        // use graph object methods to get user details
        $name= $graph->getName();
        echo "hi $name";
    }else{
        //else echo login
        echo '<a href='.$helper->getLoginUrl().'>Login with facebook</a>';
    }
Run Code Online (Sandbox Code Playgroud)

编辑1:我上面已经提到相同的代码在localhost上工作正常.我刚刚意识到它在第一次运行时工作正常,如果我在那之后刷新页面,则会显示相同的错误!

mkm*_*mkm 1

您的服务器可能会阻止传出的 CURL 请求,请联系您的提供商并询问他是否可以开放对 Facebook API 服务器 (graph.facebook.com) 的访问。 看到这个。