Facebook 登录集成未捕获异常 "could not connect to host"
Facebook login integration uncaught exception "could not connect to host"
我正在尝试使用 YouTube 上提供的 PacketCode 教程学习 facebook 集成。该代码在我的本地主机上运行良好(即使通过登录 facebook 进行测试)。但是当我尝试 运行 Hostinger.in 免费主机上的代码时,它显示以下错误:
Fatal error: Uncaught exception 'Facebook\FacebookSDKException' with message 'couldn't connect to host' in /home/u315632576/public_html/fblogin-basic-master/lib/Facebook/HttpClients/FacebookCurlHttpClient.php:142 Stack trace: #0 /home/u315632576/public_html/fblogin-basic-master/lib/Facebook/FacebookRequest.php(248): Facebook\HttpClients\FacebookCurlHttpClient->send('https://graph.f...', 'GET', Array) #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): Facebook\FacebookRedirectLoginHelper->getSessionFromRedirect() #3 {main} thrown in /home/u315632576/public_html/fblogin-basic-master/lib/Facebook/HttpClients/FacebookCurlHttpClient.php on line 142
在此之后,我通过在他的付费托管服务器上请求付费主机所有者来尝试 运行 宁此代码,代码仍然可以正常工作。那么 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>';
}
编辑 1:我在上面提到过,相同的代码在本地主机上运行良好。我刚刚意识到它在第一次 运行 时工作正常,如果我在那之后刷新页面,会显示相同的错误!
您的服务器可能会阻止传出的 CURL 请求,请联系您的提供商并询问他是否可以打开对 Facebook API 服务器的访问权限 (graph.facebook.com)。
see this.
我正在尝试使用 YouTube 上提供的 PacketCode 教程学习 facebook 集成。该代码在我的本地主机上运行良好(即使通过登录 facebook 进行测试)。但是当我尝试 运行 Hostinger.in 免费主机上的代码时,它显示以下错误:
Fatal error: Uncaught exception 'Facebook\FacebookSDKException' with message 'couldn't connect to host' in /home/u315632576/public_html/fblogin-basic-master/lib/Facebook/HttpClients/FacebookCurlHttpClient.php:142 Stack trace: #0 /home/u315632576/public_html/fblogin-basic-master/lib/Facebook/FacebookRequest.php(248): Facebook\HttpClients\FacebookCurlHttpClient->send('https://graph.f...', 'GET', Array) #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): Facebook\FacebookRedirectLoginHelper->getSessionFromRedirect() #3 {main} thrown in /home/u315632576/public_html/fblogin-basic-master/lib/Facebook/HttpClients/FacebookCurlHttpClient.php on line 142
在此之后,我通过在他的付费托管服务器上请求付费主机所有者来尝试 运行 宁此代码,代码仍然可以正常工作。那么 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>';
}
编辑 1:我在上面提到过,相同的代码在本地主机上运行良好。我刚刚意识到它在第一次 运行 时工作正常,如果我在那之后刷新页面,会显示相同的错误!
您的服务器可能会阻止传出的 CURL 请求,请联系您的提供商并询问他是否可以打开对 Facebook API 服务器的访问权限 (graph.facebook.com)。 see this.