Pourquoi ça m'arrive toujours?
Cela se produit après que mon application vérifie la connexion de l'utilisateur et redirige l'utilisateur vers la page d'authentification:
https://www.facebook.com/dialog/oauth?client_id=XXX&redirect_uri=http%3A%2F%2Fexample.com%2Fmyappname%2F&state=YYYYYY&scope=offline_access%2Cpublish_actions
Mais au lieu d’afficher la page d’autorisation, Facebook affiche une page d’erreur avec
Une erreur est survenue. Veuillez réessayer plus tard.
Dois-je effectuer une configuration avant d'essayer d'authentifier mes utilisateurs?
Tout est fait avec PHP en utilisant les classes PHP-SDK.
J'ai eu le même problème après avoir changé le domaine de mon site. Bien que j'ai correctement changé le paramètre request_uri et mis à jour les paramètres de mon application avec le nouveau domaine, l'erreur ne cessait de s'afficher. Ensuite, j'ai réalisé que l'ID et l'ID SECRET de mon application Facebook avaient automatiquement changé sans avertissement! Le tout a recommencé à fonctionner avec le nouvel identifiant.
J'ai eu le même problème que toi.
Sur la page Applications pour développeurs Facebook, assurez-vous que le mode Sandbox est désactivé.
Cela m’arrivait aussi mais toutes les clés de l’API, les secrets et tout le reste étaient corrects. Ce que j'ai trouvé, c'est que mon application fonctionnait en mode bac à sable. Accédez aux paramètres de votre application dans https://developers.facebook.com/ cliquez sur l'onglet Paramètres avancés et vérifiez si votre application est en mode bac à sable. Si c'est le désactiver, essayez à nouveau. Faites-nous savoir si cela fonctionne.
Je recevais cette erreur parce que je partais de http://mysite.com
, mais avait spécifié http://WWW.mysite.com
dans mes paramètres Facebook - le www importait ... J'ai finalement résolu le problème en utilisant .httpaccess pour toujours tuer le "www", et en indiquant FB à http://mysite.com
pire. sous-domaine. déjà. : u)
Lorsque vous travaillez avec Dialogues, Facebook fournit un attribut 'show_error', dont la valeur par défaut est no
, mais qui peut être défini sur true
dans un environnement de développement, ce qui est très utile pour le débogage.
show_error - Si la valeur est true, le code d'erreur et la description de l'erreur seront affichés en cas d'erreur.
Les instructions d'utilisation sont disponibles dans le Docs Facebook .
J'avais débogué "Une erreur est survenue. Veuillez réessayer plus tard." dialogue avant que je trouve cet attribut dans la documentation. Une fois que j'ai commencé à l'utiliser, je pouvais aussi voir le message suivant:
Code d'erreur de l'API: 191
Description de l'erreur de l'API: l'URL spécifiée n'appartient pas à l'application
Message d'erreur: redirect_uri n'appartient pas à l'application.
Pour moi, cela s'est produit parce que "l'utilisateur test" que j'ai créé faisait partie d'une application distincte. J'ai créé un utilisateur test pour CETTE application et tout a bien fonctionné.
Stupide de ma part, je le sais, mais cela pourrait éviter des ennuis à quelqu'un d'autre.
J'ai eu le même problème; il s'est avéré que FB nécessite un chaîne appID et non un int ...
//DOESNT WORK:
$facebook = new Facebook(array(
'appId' => 147XXXXXXXXXXX,
'secret' => 'XXXXXXXXXXXXXX',
));
// WORKS:
$facebook = new Facebook(array(
'appId' => '147XXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXX',
));
La solution pour moi consiste à activer l'option "Références authentifiées". C'est vraiment réparé après ça.
Assurez-vous que votre application est configurée pour utiliser l'URL et le domaine appropriés de votre site. C'est peut-être ça.
Selon OAUTH Documentation de la boîte de dialogue:
* redirect_uri: L'URL vers laquelle rediriger après que l'utilisateur ait cliqué sur un bouton dans la boîte de dialogue. L'URL que vous spécifiez doit être une URL avec le même domaine de base que celui spécifié dans les paramètres de votre application, une URL Canvas de la forme https: //apps.facebook.com/YOUR_APP_NAMESPACE ... *
Je construis oauth des liens dynamiques pour demander à un utilisateur des autorisations supplémentaires si nécessaire et je me suis rendu compte que, même si vous redirigiez vers https: //apps.facebook.com/YOUR_APP_NAMESPACE vous devez avoir les paramètres de domaine d'application et de site Web définis dans l'administration de votre application. J'ai défini le domaine sur facebook.com et le site Web sur l'URL de la racine de Facebook.
Maintenant, mon lien de dialogue oauth) fonctionne correctement - même en mode bac à sable.
J'ai eu ce problème exact sur une application Page Tab et pour la vie de moi ne pouvait pas comprendre quel était le problème. Cela a fonctionné sur ma page de test, mais dès que je l'ai faite vivre, cela ne fonctionnait plus. J'ai finalement trouvé que j'avais résolu le problème en mettant l'URL réelle dans l'onglet de page (i.e. http://www.facebook.com/<"page_name">/app_<"app_id">
) dans "URL du site" sous "Site Web". Cela n'a aucun sens. Mais ça a marché :-)
Également eu un problème avec un lien de redirection incorrect: j'avais un lien commençant par "https://apps.facebook.com?myapplication" ... mais après autorisation, la redirection me conduisait à "apps.facebook.com/Myapplication" et par conséquent je recevrais un message décrit ci-dessus: "Une erreur est survenue. Réessayez plus tard." depuis "apps.facebook.com" ... signifie "http://apps.facebook.com/Myapp" et non "HTTPS: //apps.facebook.com /, ..."
La solution: aller dans les paramètres de mon application dans la section développeurs de facebook. Cliqué sur 'Modifier'. Dans le menu de gauche, sélectionnez "Autorisations" (par défaut, le menu est défini sur Basique) et, dans le jeu de paramètres récemment ouvert, modifiez mon "Paramètre de jeton d'authentification" de "Chaîne de requête" en "Fragment d'URL".
Ça a marché! Une fois l'autorisation terminée, les utilisateurs sont dirigés vers "https: //apps.facebook.com/myapp ...".
Si tout votre code fonctionne correctement, pour supprimer ce type d'erreur, accédez à Facebook Developers Apps et désactivez mode bac à sable.
Le problème a été résolu après la mise à jour de 'appID' et de 'secret', puis de la modification du retour à heroku (c'est-à-dire '' git Push heroku master ').
La clé est de ne pas oublier de repousser les modifications au maître heroku. Très facile à négliger si vous avez l'habitude de tester sur localhost.
J'espère que cela t'aides.
Une autre erreur possible, si vous copiez directement le code à partir de l'exemple du SDK de Facebook, vous risquez d'obtenir la même erreur malgré le fait que tout soit correct. http://developers.facebook.com/docs/reference/php/
En effet, dans leur exemple, ils ont utilisé des guillemets arrières au lieu de guillemets simples pour la clé du tableau. Le code correct est comme suit.
require_once("facebook.php");
$config = array();
$config['appId'] = 'YOUR_APP_ID';
$config['secret'] = 'YOUR_APP_SECRET';
$config['fileUpload'] = false; // optional
$facebook = new Facebook($config);
Pour moi, le problème était que les utilisateurs de Facebook que j'utilisais pour tester l'application n'avaient pas d'adresse électronique confirmée par Facebook.
Mon client avait créé 2 faux comptes sur Facebook et m'avait dit qu'ils ne travaillaient pas. Mais il a oublié de confirmer les adresses e-mail de ces comptes (les e-mails envoyés par Facebook sont allés dans son dossier spam et il ne l'a pas remarqué).
Cela m'a pris des heures pour le trouver, alors j'espère que cela aidera quelqu'un.
À votre santé!
Je viens de rencontrer ce problème moi-même. Je développe une application en interne, mon hôte est donc "localhost". Il n'était pas évident de définir "localhost" dans la configuration de l'application. Si vous souhaitez développer localement, configurez votre application en procédant comme suit:
Enregistrez et attendez quelques minutes que les informations se propagent, bien que cela ait fonctionné immédiatement pour moi.
J'avais mis la restriction sur l'application que seule la résidence aux États-Unis pouvait utiliser l'application. Je travaillais du Canada au moment où ce message d'erreur est apparu. Après avoir supprimé la restriction, tout a fonctionné.
Je suis arrivé ici avec un problème similaire et, oui, mon bac à sable a été activé. Je l'ai désactivé et, voila, le problème de connexion est parti. Je dois avertir que ce problème n'affecte pas les développeurs et les administrateurs de site Web, car Facebook permet à ces utilisateurs de voir l'application. Pour cette raison, je ne pouvais même pas croire que les utilisateurs se plaignaient de ne pas pouvoir se connecter, car je pouvais me connecter sans aucun problème.
J'ai eu le même problème, et le réparer en ajoutant param & display = touch to url
essayez, cela peut aider
Vérifiez votre appid et assurez-vous que vous avez mis à jour l'URL de votre site URL du site mobile dans https://developers.facebook.com/
Si vous êtes le développeur d'applications, vous pouvez voir un message d'erreur plus spécifique, mais ce message signifie généralement l'une des deux choses suivantes:
Je sais que vous avez peut-être la réponse, mais ceci est destiné à ceux qui continuent à chercher le moyen de trouver la solution.
Vous pouvez essayer toutes les solutions ci-dessus mais rappelez-vous simplement que supprimez l’application précédente de l’appareil ou du simulateur avant de vérifier une autre solution.
J'ai essayé toutes les solutions, mais je n'ai pas eu de réponse car je ne supprimais pas l'application précédente, mais le nettoyage de la construction ne répond pas à la condition. J'espère que cela aidera quelqu'un. :)
Paramètres> avancé> sécurité> valide oauth URI de redirection
Vous devez spécifier http://
dans votre URI REDIRECT.
Pour moi, le problème était que l'URL de l'application ne correspond pas complètement à l'URL sur laquelle je l'exécutais (c.-à-d. Répertoires différents, même domaine).
J'ai rencontré le même problème et la raison était que mon app was not live
et accessible au public.
J'ai ajouté mon identifiant d'email dans l'email de contact sous les onglets de paramétrage pour rendre mon application active (qui était auparavant désactivée pour la rendre active).
Après avoir fait vivre mon application, son dialogue de partage avec l'image, le titre et la description appropriés, avec le nom de l'application en bas, s'affiche.
J'avais essayé toutes les réponses mentionnées ici. Mais ça n'a pas marché. Je devais supprimer et créer à nouveau. Je suppose que cela était dû au nouveau "Renvoi authentifié". Si vous avez ajouté des objets Open Graph qui ne sont pas approuvés, cela peut vous donner une erreur.
J'ai eu cette erreur parce que j'utilisais redirect_url
comme paramètre au lieu de redirect_uri
.
La page Authentification côté serveur doc dit d'utiliser redirect_url
:
https://www.facebook.com/dialog/oauth?
client_id=YOUR_APP_ID
&redirect_url=YOUR_REDIRECT_URI
&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
&state=SOME_ARBITRARY_BUT_UNIQUE_STRING
Mais c'est inexact. Le dialogue OAuth doc dit d'utiliser redirect_uri
à la place, ce qui fonctionne, donc je suppose que vous ne pouvez utiliser que l’un et pas l’autre:
https://www.facebook.com/dialog/oauth/?
client_id=YOUR_APP_ID
&redirect_uri=YOUR_REDIRECT_URL
&state=YOUR_STATE_VALUE
&scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
La raison dans mon cas était complètement différente. J'essayais d'ouvrir une boîte de dialogue Flux automatiquement après le chargement de la page. Et 9 fois sur 10, il affiche cette erreur. Tout d'abord, j'ai ajouté le paramètre show_error: true
Comme suggéré par @Peter Roome, mais cela n'a pas aidé, affichant 104: Invalid signature
, Pas du tout descriptif.
Ensuite, j'ai compris la raison. Le code était en $(document).ready
fonction jQuery. Et il semble que certains éléments de Facebook n'aient pas encore été chargés au moment où le code devait être exécuté. J'ai déplacé le code dans le bloc $(window).load
(exécuté après le chargement de tout le contenu de la page) et le problème a été résolu.
Il n'y a aucune possibilité de résoudre ce type d'erreur. Il est donc préférable d’utiliser votre boîte de dialogue personnalisée comme celle indiquée sur facebook et de poster et rediffuser le message sans vous connecter. Même si vous supprimez votre application de Facebook, vous pouvez demander la connexion et publier un message avec succès.
J'ai eu le même problème et la cause fondamentale était différente:
J'étais connecté en tant qu'utilisateur test d'une autre application. Par conséquent, je n'ai pas pu autoriser une application qui n'est pas celle pour laquelle l'utilisateur test a été créé.
Lorsque je me suis déconnecté et connecté en tant qu'utilisateur régulier ou utilisateur test pour l'application que j'ai tenté d'autoriser, tout s'est bien passé.
Dans mon cas, il y avait un problème d'âge avec le compte utilisé avec l'application.
Si l'application FB a un contenu alcoolique, les utilisateurs FB âgés de moins de 21 ans émettront une erreur lorsqu'ils essaieront de s'autoriser.