11
votes

Facebook FB.UI Envoyer la boîte de dialogue renvoie intermittente une erreur de liaison non valide

Cela fonctionne bien depuis plus d'une semaine.

An error occurred. Please try again later.

API Error Code: 100 API Error Description: Invalid parameter Error Message: 'link' is invalid.


5 commentaires

Coffre-fort pour supposer que vous êtes convaincu que homéurl + '/' + nom d'utilisateur + '/ quelque chose =' + var1 + '& quelque chose =' + Encoduri (var2) + '& SIFMORE =' + ENCODURI (VAR3) crée toujours la même chaîne d'URL (valide)? Vous voudrez peut-être extraire cela dans une variable et console.log () avant le fb.ui () appeler comme un chèque de santé mentale


J'ai vérifié la double vérité dans la console Chrome et c'est l'URL complète. MyDomain ....


Je suis toujours confronté à ce problème des 2 derniers jours


Oui le même ici. Nous n'avons eu aucune chance jusqu'à présent.


Vérifiez ma réponse pour cette question Stackoverflow.com/questions/7539659/...


3 Réponses :


9
votes

J'ai eu le même problème et cela a cessé de travailler depuis la semaine dernière.

Voici ma solution:

aller à Facebook Debugger et ajoutez votre URL. Cliquez sur "Débogage" et corrigez tous les avertissements affichés par Facebook.

Pour réparer le mien, je devais ajouter la balise og.url méta sur ma page. La valeur devrait être exactement la même que celle que vous souhaitez partager (aucune redirection). Puis Facebook m'a envoyé cette notification (alerte):

Votre application, XXX, est désormais conforme à l'URL de la publication du flux Migration de sécurité. Aucune autre action n'est requise.

Essayez de partager votre lien avec fb.ui à nouveau et maintenant que votre message doit afficher automatiquement vos valeurs og .

Note: Facebook Octobre Breaking Change utilisera automatiquement ces og métas au lieu de personnalisé fb. UI paramètres, vous pouvez également activer le changement de rupture pour vous préparer et supprimer le nom / l'image / la description de votre code.

mise à jour: Ce problème peut arriver à nouveau même si ce que j'ai mentionné ci-dessus est correctement mis en œuvre.

Si c'est votre cas, c'est parce que vous devez faire respecter Facebook pour "gratter" votre page. Ce processus est automatiquement effectué par Facebook lorsque vous utilisez le débogueur de l'objet Facebook ou vous copiez / collez votre lien sur votre chronologie / messages privés. Si vous utilisez le SDK JavaScript, vous devez demander à Facebook à indexer et à cacher votre page.

Vous ne trouverez pas cela dans la documentation Facebook liée au SDK JavaScript (ou vous avez de la chance) afin de vous faire économiser tous les jours que j'ai perdu pour trouver ce problème incroyable (rappelez-vous Facebook uniquement indiquant que votre lien n'est pas valide) Vous pouvez Trouver plus de détails sur Cette page .

J'ai essayé d'utiliser l'API graphique pour appliquer ma page nouvellement créée à gratter par Facebook, si cela fonctionne pour vous, vous avez de la chance. La deuxième méthode qui n'est pas mentionnée mais produite le même résultat est d'envoyer une demande à la page de débogueur de l'objet Facebook et d'ajouter votre lien de page dans l'URL (par exemple, https://developers.facebook.com/tools/debug/ og / objet? q = y VAGAGEURLHERE ). En faisant ce temps, vous ferez cette fois gratter votre page et vous pouvez désormais partager vos liens avec l'API Facebook, tout fonctionne maintenant.


12 commentaires

Intéressant ... mais l'URL que je partage en utilisant la boîte de dialogue est personnalisée avec des paramètres de chaîne de requête. Le SendDialog est lancé par plusieurs ancres avec des valeurs dynamiques. Cela ne sera-t-il plus soutenu? Je ne pouvais pas simplement mettre un og.url dans la balise de la page car cela ne fonctionnera pas.


Je pensais que la migration se passe en octobre mais on dirait que cela nous brise déjà. J'ai ajouté une nouvelle question pour aborder cela ici. Stackoverflow.com/ Questions / 18088472 / ...


J'ai corrigé tous les avertissements en ajoutant les balises OG aux pages. Maintenant, le débogueur Facebook est heureux. L'utilisation de la boîte de dialogue Envoyer fonctionne correctement pour mon compte (j'ai pu envoyer des messages) mais il échoue toujours aux autres membres de mon équipe avec le même lien est une erreur invalide.


@KC: J'ai mis à jour ma réponse, tout fonctionne bien sur Live pour tous mes sites Web et mes clients sont satisfaits de cela. Veuillez accepter la réponse si votre problème est corrigé.


Bonjour - Mon problème n'est pas corrigé. Le lien est bien dans le débogueur Facebook. Aucune plainte. Je reçois toujours le lien n'est pas invalide par intermittence à l'aide de la boîte de dialogue Envoyer cependant. Parfois à la même personne même.


Si tout va bien dans le chèque de débogueur Facebook sur votre page sur laquelle vous utilisez le SDK JavaScript. Avez-vous une erreur dans la console JavaScript? Est-ce que vous forcez votre lien à être gratté comme j'ai ajouté dans ma réponse mise à jour?


J'ai la force raclée de la page avec le débogueur. Il n'y a pas d'erreur JavaScript. Il y a 2 numéros: (1) Les paramètres de chaîne de requête de liaison peuvent changer et (2) je n'ai pas les autorisations pour voir la page comme émetteur --- se demander si Facebook tente d'accéder à la page comme moi du côté du client.


(1) Pouvez-vous confirmer que le lien que vous passe à fb.ui () n'expire pas. (2) Facebook ne peut accéder à des pages publiques que (c'est-à-dire d'un moteur de recherche). Pouvez-vous accéder à votre page à partager sans avoir besoin de vous connecter ou autre chose?


Cela n'expire pas. Il est complètement accessible sans nécessiter de connexion. Je pense avoir identifié la question. C'est avec l'URL en mutation. Le problème est que mon lien puisse changer en fonction de l'utilisateur et des VARS: HOMEURL + '/' + nom d'utilisateur + '/ quelque chose =' + VAR1 + '& JEULSE =' + ENCODURI (VAR2) + '& SIFMORE =' + ENCODURI (VAR3 ). Dès que je gratte chaque URL manuellement, cela fonctionne. Peut-être ai-je besoin de quelque chose comme ceci: Stackoverflow.com/Questtions/12100574/...


Cool :) Oui, c'est une autre méthode comme expliquée dans l'un de mes liens sur les objets Facebook, mais nécessite d'utiliser curl . Question: Pourquoi votre URL pour une même page peut-elle changer? Ceci est un autre sujet, mais 1 page = 1 URL, qui simplifiera votre code, une meilleure mise en cache, un meilleur référencement ...


J'ai le même problème avec la méthode d'envoi. Ce que je dois donner dans l'URL de débogueur Facebook? S'il vous plaît vous conseiller parce que je ne suis pas clair.


L'URL de débogueur Facebook doit être identique à l'URL fournie à l'API Facebook (votre page ciblée, par exemple votre article de presse)



0
votes

Assurez-vous que lorsque Facebook demande votre URL, elle ne sera jamais transmise.

Un moyen de faire cela est de présenter Facebook avec une page spéciale de son propre, contenant tous les ingrédients appropriés. P>

Voici un exemple (en quelque sorte basé sur PHP + Symfony 1.4): P>

<?php
    if(preg_match('/facebookexternalhit/i', $request->getHttpHeader('User-Agent')))
    { ?>
        <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
      <head>
        <meta property="fb:app_id" content="<?php echo sfConfig::get('app_facebook_app_id'); ?>" />
        <meta property="og:url" content="<?php echo sfContext::getInstance()->getRequest()->getUri(); ?>" />
        <meta property="og:title" content="<?php echo $title; ?>" />
        <meta property="og:description" content="<?php echo $description; ?>" />
        <meta property="og:image" content="<?php echo $image; ?>" />
      </head>
      <body>
        hello Facebook!
      </body>
    </html>
    <?php
    }
?>


2 commentaires

Nous n'avons pas de transfert d'URL en cours. L'URL passée à envoyer la boîte de dialogue est l'URL qui indique lorsque la page est rendue.


@hexiecode: Vous ne devriez pas simplement coder comme celui-ci, og n'est pas seulement utilisé par Facebook, pour d'autres personnes comme Twitter, il vaut mieux ne pas avoir de redirections aussi. Si l'utilisateur de Facebook change ou qu'il souhaite implémenter Twitter, il devra conserver ce code et il sera plus complexe. Si vous regardez sur les sites Web de nouvelles, vous pouvez voir dans le code source que og + fb + twitter métas est généré.



5
votes

Je peux confirmer que cela a été corrigé pour moi lorsque j'ai forcé Facebook à gratter d'abord l'URL avant d'essayer d'envoyer cette même URL via la boîte de dialogue FB UI.

échantillon Code: p>

FB.api('https://graph.facebook.com/', 'post', {
    id: '[URL]',
    scrape: true
}, function(response) {
    FB.ui({
        method: 'send',
        name: '[name]',
        picture: '[Picture URL]',
        link: [URL]',
        description: '[description]'
    });
});


3 commentaires

Eu ce même problème, et cette même solution semble toujours fonctionner. Si l'URL que vous envisagez d'avoir des utilisateurs, il est peu probable que cela ait été gratté auparavant (surtout s'il est coutume à l'utilisateur, généré à droite, ce type d'appel amorcera la pompe, comme il le rendra beaucoup plus probable que Vous n'allez pas avoir une erreur 100 lorsque vous partagez.


@DTISON, fonctionne-t-il toujours avec le nouvel API de graphique 2.0 qu'ils ont publié aujourd'hui?


@Scott, pourrait vous aider à plase Heare stackoverflow. com / questions / 66654709 / ...