2

J'ai un hôte avec ssl Partagée dans hostgator.com, je téléchargé le site CodeIgnitor dans le répertoire public_html (racine). Je veux développer un site web ainsi qu'une application facebook. site Web réussi avec «se connecter avec facebook» lors de l'exécution d'une application facebook, il donne une erreur de redirection URL.Facebook APP avec SSL partagé à CodeIgnitor

C'est url http

url(Website): http://example.org/ 

et url sécurisé est

https://in9.hostgator.in/~username/ 

facebook configuration app,

canvas url : http://example.org/ 
    Secure Canvas URL : https://in9.hostgator.in/~username/ (Work in url) 

Quand j'ai exécuter l'application facebook, facebook donne une erreur:

API Error Code: 191 
    API Error Description: The specified URL is not owned by the application 
    Error Message: Invalid redirect_uri: Given URL is not permitted by the application configuration. 

En application, il n'y a pas de fichier .htaccess pour rediriger ou la suppression index.php dans le répertoire racine.

J'ai couru ce code contrôleur de base:

public function __construct() 
{ 
    parent::__construct(); 
    $this->load->library("session"); 
    $this->load->helper('cookie'); 

    parse_str($_SERVER['QUERY_STRING'], $_REQUEST); 
    $CI = & get_instance(); 
    $CI->config->load("facebook",TRUE); 
    $config = $CI->config->item('facebook'); 
    $this->load->library('Facebook', $config); 

} 

/** 
* Index function 
* @access public 
* 
public function index() 
{ 
    $userId = $this->facebook->getUser(); 
    // If user is not yet authenticated, the id will be zero 

    if($userId == 0){ 
        // Generate a login url 
     $params = array(
        'scope' => 'email,user_about_me, user_birthday, user_location'); 
     $url = $this->facebook->getLoginUrl($params); 
     echo "<script type='text/javascript'>" . "top.location.href = '" . $url. "';</script>"; 
     } 
    } 

Quand je print '$ url' REDIRECT_URL puis dans la chaîne de requête est 'http://in9.hostgator.in/~username/', ne redirige pas au chemin https.

Je suis confus, qu'est-ce qu'une erreur dans le code? ou une mauvaise configuration dans le serveur ou quoi? Plz aide thanx à l'avance.

Répondre

2

applications Facebook ont ​​un paramètre « App Domaines » aussi, le sdk facebook ne fonctionnera pas si l'URL de toile de ne sont pas sous les domaines répertoriés. Essayez d'ajouter à la fois le example.org et le hostgator.in.

vous pouvez également utiliser l'URL de toile facebook comme la redirection uri, donc si votre espace de nom de l'application facebook est my-facebook-app alors vous pouvez générer l'URL de connexion comme ceci:

$this->facebook->getLoginUrl(array(
    'scope' => 'email,user_about_me, user_birthday, user_location', 
    // change the last segment to you app's namespace 
    'redirect_uri' => 'https://apps.facebook.com/my-facebook-app/' 
)); 

Avec des applications de toile ce qui a probablement plus possible depuis car si l'URL de redirection pointe directement vers votre URL de canevas sécurisée, les utilisateurs vont "perdre" Facebook lorsqu'ils s'authentifieront.

+0

ce n'est pas possible parce que lorsque l'application facebook rediriger vers le serveur, puis de nouveau, il vous obtiendrez le même URL (app), il a un problème de redirection récursive. – Rajnish

+1

@Rajnish, dans l'exemple de code, la redirection est réalisée que si l'application n'a pas encore été installé (surveillé avec un 'if ($ userId == 0)' si la redirection doit arrêter une fois que l'utilisateur installe l'application. Mais quand – complex857

+0

J'ai mis ce code dans le contrôleur de CI, il continue la redirection..pour ce cas pouvez-vous donner comment nous empêchons la redirection.J'ai également le script d'echo pour installer le profil d'utilisateur – Rajnish