Question

Je suis en train d'intégrer mon projet avec Facebook. Je prends des mesures pour bébés dans un premier temps et juste essayer de connexion, obtenir une session Facebook, et obtenir des données utilisateur. Je développe ce que mes paramètres d'application Facebook localement sont:

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

L'URL de la toile est le même que ci-dessus. Je n'ai pas spécifié un domaine du site.

Cependant, lorsque je clique sur le bouton de connexion, je reçois une erreur:

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.

En ce moment je n'ai pas écrit de code côté serveur pour traiter les redirections, etc. Tout ce que je l'ai fait est d'ajouter le SDK JavaScript basé sur le tutoriel dans Facebook pour les sites Web .

Qu'est-ce que je fait de mal? Il est évidemment quelque chose à voir avec mes paramètres d'application Facebook, mais je ne peux pas voir quoi!

Était-ce utile?

La solution

Mise à jour: Pour répondre à l'API Code d'erreur: 191
Le redirect_uri doit être égale (ou relative) à l'URL du site.
entrer image description ici

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

DECONSEILLE: Par exemple, si vous utilisez www.mydomain.com/fb/test.html comme URL du site et ayant www.mydomain.com/fb/secondPage.html comme redirect_uri cela vous donnera l'erreur 191.

RECOMMANDÉE: Ainsi, au lieu que votre jeu URL du site à une URL de base comme:. www.mydomain.com/ OU www.mydomain.com/fb/


Je suis allé à travers le Facebook exemple d'application Python aujourd'hui, et j'étais choqué il a été clairement indiquant que vous pouvez utiliser http://localhost:8080/ URL du site si vous développez localement:

  

Configurer l'URL du site, et pointez   à votre serveur Web. Si vous êtes   le développement local, vous pouvez utiliser    http: // localhost: 8080 /

Alors que je n'a que vous ne pouvez pas le faire, en fonction de ma propre expérience (très ancien test bien), il semble que vous avez réellement CAN tester votre application Facebook localement!

Je pris une ancienne application de la mine et édité son nom, site URL et URL Canvas: Site URL: http://localhost:80/fblocal/

J'ai téléchargé la dernière Facebook PHP-SDK et l'ai jeté dans mon dossier xampp/htdocs/fblocal/.

Mais je suis la même erreur que le vôtre! J'ai remarqué que XAMPP est en train de faire une redirection automatique vers http://localhost/fblocal/ alors j'ai changé le réglage simplement http://localhost/fblocal/ et la erreur a disparu et je devais supprimer l'application (de paramètres de confidentialité ) et réinstaller mon application et voici les résultats:
text alt

Après cela, a demandé la permission de publish_stream, et je suis en mesure de publier à mon profil (en utilisant le SDK PHP):

$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: text alt

Autres conseils

Pour moi, il était un domaine de l'application manquante. Allez dans l'application, et assurez-vous que vous avez la racine de votre site mis en place comme un domaine d'application. Voir capture d'écran.

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

Ceci est juste à cause d'une erreur d'URL.

Quelle que soit l'URL du site est spécifié devrait être correct.

je l'ai mentionné URL du site en tant que http://localhost:3000/ et le domaine localhost, mais dans mon navigateur je courais http://0.0.0.0:3000/.

Quand je courais serveur comme localhost:3000 il a résolu le problème.

Comme je l'ai mentionné, l'URL du site en tant que localhost Facebook redirigera sur le même, si nous courons 0.0.0.0:3000, il va augmenter erreur « URL donnée n'est pas autorisé par la configuration de l'application ».

Je faisais face au même problème quand je suis en utilisant la méthode d'authentification facebook. Mais je rectifie cette question avec la suite de changements dans Facebook api (Apps >> My App >> Basic).

  1. Je retire l'URL que j'ai donné ===> App sur Facebook (toile URL)
  2. J'ai donné url du site que dans ===> Site Web avec Facebook Connectez-vous

Alors je donné que AppId et App secret dans ma page Web.

en cliquant sur le bouton de connexion, il demande des autorisations d'accès il rediriger à donner url ( Site Web avec Facebook Connectez-vous ).

eu le même problème:

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

Quand j'ai changé la redirect_uri de la page devloper à la page en direct, 191 Erreur est venu.

Je supprimé les params $:

$facebook->getLoginUrl();

Après l'application de demande maintenant FB redirige vers l'URL de l'application elle-même f.e .: my.domain.com

Ce que je fais est maintenant les formalités d'arrivée index.php de mon application si je suis à l'intérieur FB iframe ou non. Sinon je redirection vers la page de FB en direct f.e:.

$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 '<script>window.parent.location = "'.$app.'";</script>';
    die();
}

J'ai remarqué aussi que, même si vous spécifiez votre site sous secion - site avec Facebook Login -> url du site comme par exemple http://example.com , mais si votre section App Domaines est vide, et vous voir le site comme www.example.com vous obtiendrez cette erreur aussi. Pour éviter dans la section "App Domaines" d'écriture example.com, qui permettra à des sous-domaines, comme www.example.com, something.example.com etc

dans le facebook App page, goto l'onglet de base. trouver "site Web avec Facebook Connexion" Option.

vous trouverez site URL: entrée il mettre 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'ID APP est 123456789

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

Quelque chose que je voudrais ajouter, car cela est une 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 la navigation sécurisée et que votre application ne redirige facebook sans SSL.

... travail local Je ne pouvais pas obtenir le flux api au travail, mais le api part travaillé à peu près tout de suite sans problème.

Je fixe cela en passant l'URL de redirection vers le FacebookRedirectLoginHelper::getAccessToken() dans ma fonction de rappel:

Changement de

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

à

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

Je développe sur une boîte errante, et il semble les problèmes ont de FacebookRedirectLoginHelper::getCurrentUrl() générer une URL valide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top