Erreur de l’API Facebook 191

J’essaie d’intégrer mon projet avec Facebook. Je fais de petits pas au début et j’essaie juste de me connecter, d’obtenir une session sur Facebook et d’obtenir des données utilisateur. Je le développe localement donc mes parameters d’application Facebook sont:

site URL: http://127.0.0.1:8888/mySite/ 

L’URL du canevas est la même que ci-dessus. Je n’ai pas spécifié de domaine de site.

Cependant, lorsque je clique sur le bouton de connexion, une erreur s’affiche:

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

Pour le moment, je n’ai écrit aucun code côté serveur pour gérer les redirections, etc. Tout ce que j’ai fait, c’est append le SDK JavaScript basé sur le didacticiel de Facebook pour les sites Web .

Qu’est ce que j’ai mal fait? C’est évidemment quelque chose à voir avec les parameters de mon application Facebook, mais je ne vois pas quoi!

    METTRE À JOUR:
    Pour répondre au code d’erreur API: 191
    Le redirect_uri doit être égal (ou relatif) à l’URL du site.
    entrer la description de l'image ici

    Conseil: utilisez les URL de base au lieu des URL complètes pointant vers des pages spécifiques.

    NON RECOMMANDÉ: Par exemple, si vous utilisez www.mydomain.com/fb/test.html comme URL de votre site et que www.mydomain.com/fb/secondPage.html est redirect_uri , vous obtiendrez l’erreur 191.

    RECOMMANDÉ: A la place, placez l’URL de votre site sur une URL de base telle que: www.mydomain.com/ OU www.mydomain.com/fb/ .


    J’ai parcouru l’ application exemple Facebook Python aujourd’hui, et j’ai été choqué de constater que vous pouviez utiliser http://localhost:8080/ comme URL du site si vous développez localement:

    Configurez l’URL du site et pointez-le sur votre serveur Web. Si vous développez localement, vous pouvez utiliser http: // localhost: 8080 /

    Bien que je sois certain de ne pas pouvoir le faire, sur la base de ma propre expérience (test très ancien), il semble que vous POUVEZ réellement tester votre application Facebook localement!

    J’ai donc choisi une ancienne application et édité son nom, l’URL du site et l’URL du canevas: URL du site: http://localhost:80/fblocal/

    J’ai téléchargé le dernier PHP-SDK Facebook et je l’ xampp/htdocs/fblocal/ lancé dans mon xampp/htdocs/fblocal/ .

    Mais j’ai la même erreur que la tienne! J’ai remarqué que XAMPP fait une redirection automatique vers http://localhost/fblocal/ alors j’ai changé le paramètre simplement http://localhost/fblocal/ et l’erreur a disparu MAIS j’ai dû supprimer l’application (des parameters de confidentialité ) et réinstaller mon application et voici les résultats:
    texte alt

    Après cela, demandé la permission publish_stream , et j’ai pu publier sur mon profil (en utilisant le PHP-SDK):

     $user = $facebook->getUser(); if ($user) { try { $post = $facebook->api('/me/feed', 'post', array('message'=>'Hello World, from localhost!')); } catch (FacebookApiException $e) { error_log($e); $user = null; } } 

    Résultats: texte alt

    Pour moi, c’était un domaine d’application manquant. Accédez à l’application et assurez-vous que la racine de votre site est configurée en tant que domaine d’application. Voir la capture d’écran.

    domaines d'application est dans les paramètres de base de votre application

    C’est juste à cause d’une erreur d’URL.

    Toute URL du site Web spécifiée doit être correcte.

    J’ai mentionné l’URL du site Web comme http://localhost:3000/ et domain comme localhost, mais dans mon navigateur, http://0.0.0.0:3000/ .

    Quand j’ai couru le serveur en tant que localhost:3000 cela a résolu le problème.

    Comme je l’ai mentionné, l’URL du site localhost Facebook sera redirigée vers le même, si nous 0.0.0.0:3000 , une erreur apparaîtra comme quoi “l’URL donnée n’est pas autorisée par la configuration de l’application”.

    J’étais également confronté au même problème lorsque j’utilisais la méthode d’authentification Facebook. Mais je rectifie ce problème avec les modifications suivantes dans Facebook api ( Apps >> My App >> Basic ).

    1. J’ai enlevé l’URL que j’ai donné dans ===> App sur Facebook (URL Canvas)
    2. J’ai donné l’adresse du site uniquement dans ===> Site Web avec option de connexion Facebook

    Ensuite, j’ai donné cet AppId et App Secret dans ma page Web.

    Donc, en cliquant sur le bouton de connexion, il demande des permissions d’access puis le redirige pour donner l’url ( site Web avec connexion Facebook ).

    Eu le même problème:

     $params = array('redirect_uri' => 'facebook.com/pages/foobar-dev'); $facebook->getLoginUrl($params); 

    Lorsque j’ai changé le redirect_uri de la page devloper vers la page en direct, 191 Error est apparu.

    J’ai donc supprimé les parameters $:

     $facebook->getLoginUrl(); 

    Après la demande d’application, FB redirige maintenant vers l’URL de l’application elle-même fe: my.domain.com

    Ce que je fais maintenant, c’est de vérifier index.php de mon application si je suis dans iframe FB ou non. Sinon, je redirige vers la page FB en direct fe:

     $app = 'facebook.com/pages/foobar-live'; $rd = (isset($_SERVER['HTTP_REFERER'])) ? parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST) : false; if ($rd == 'apps.facebook.com' || (!isset($_REQUEST['signed_request']))) { echo ''; die(); } 

    J’ai également remarqué que même si vous spécifiez votre site Web sous Secion – Site Web avec connexion Facebook -> URL du site, par exemple http://exemple.com , mais si votre section Domaines d’application est vide et que vous ouvrez le site Web http://www.exemple. com vous aurez cette erreur aussi. Pour l’éviter dans la section “Domaines d’application”, écrivez example.com, qui autorisera les sous-domaines, tels que http://www.example.com, something.example.com, etc.

    dans la page Facebook de l’application, accédez à l’onglet de base. Trouver l’option “Site Web avec login Facebook”.

    vous trouverez l’URL du site: l’entrée contient l’URL complète (par exemple http://Mywebsite.com/MyLogin.aspx ). c’est l’URL que vous pouvez utiliser avec l’appel comme si l’identifiant de l’application est 123456789

    https://graph.facebook.com/oauth/authorize?client_id=123456789&redirect_uri=http://Mywebsite/MyLogin.aspx&scope=publish_actions

    Quelque chose que je voudrais append, car il s’agit de l’erreur 191 première question sur google:

    Lors de la redirection vers Facebook au lieu de votre propre site pour une demande signée, vous pouvez rencontrer cette erreur si l’utilisateur a une navigation sécurisée et que votre application redirige vers Facebook sans SSL.

    Travailler localement … Je ne pouvais pas faire fonctionner les stream de fichiers api, mais l’API de partage fonctionnait à peu près sans problème.

    J’ai résolu ce FacebookRedirectLoginHelper::getAccessToken() en transmettant l’URL de redirection au FacebookRedirectLoginHelper::getAccessToken() dans ma fonction de rappel:

    Changeant de

     try { $accessToken = $helper->getAccessToken(); } ... 

    à

     try { $accessToken = $helper->getAccessToken($fbRedirectUrl); } ... 

    Je développe sur une boîte vagrant, et il semble que FacebookRedirectLoginHelper::getCurrentUrl() eu des problèmes à générer une URL valide.