Próbuję nauczyć się integracji facebook za pomocą samouczka PacketCode dostępne na YouTube. Kod działa poprawnie na moim localhost (nawet jeśli testowane przez zalogowanie się na facebooku). Ale gdy próbowałem uruchomić kod na Hostinger.in wolnego przyjmującego, pokazuje następujący błąd:Facebook integracja login uncaught wyjątek "nie można połączyć się z hostem"
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
Po tym próbowałem działa ten kod żądając płatną właściciela hosta na jego płatnego hostingiem kod nadal działa dobrze na tym. Więc jaki może być problem z darmowym hostem Hostinger.in?
Kod, który jest:
/* 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>';
}
Edit 1: Wspomniałem powyżej tego samego kodu działa prawidłowo na localhost. Właśnie zdałem sobie sprawę, że działa dobrze po uruchomieniu po raz pierwszy i jeśli odświeżam stronę po tym, ten sam błąd jest wyświetlany!
Dlaczego nie wypróbujesz przykładowych aplikacji dostarczonych przez Facebooka i nie wiesz, jak to działa? Czego dokładnie szukasz ? Istnieje kilka przykładów tutoriali tutaj - https://developers.facebook.com/docs/reference/php/4.0.0. – deesarus