2012-06-18 2 views
0

Mon site Wordpress (dev: volved.dyndns-blog.com) permet aux utilisateurs d'inviter des amis via Facebook. Lorsqu'une invitation est envoyée via un appel de message d'envoi fb.ui, le paramètre suivant est ajouté en tant que paramètre de lien.Utilisation de fb.ui pour envoyer un lien avec un paramètre

http://volved.dyndns-blog.com/login/?action=register&invite_id= {3CBBBEB8-6ACF-4319-AF07-3B6C22C1091D}

Le paramètre "invite_id" provoque normalement une redirection. Depuis que Facebook a renvoyé une erreur de serveur 500 quand il voit une redirection, j'ai changé le code pour détecter 'facebook' dans l'agent utilisateur et ne pas faire de redirection. Cependant, l'appel de fb.ui échoue. Mes efforts de débogage sont entravés car il semble que dans certains cas, FB ne teste même pas le lien. Il échoue juste avec le code 500. Peut-être cela est dû à une mise en cache. Je n'ai pas encore trouvé le modèle, mais il semble se produire après un ping infructueux par FB de mon site. Si j'essaye plus tard, je vois FB sur le site.

  1. Existe-t-il d'autres conditions susceptibles d'entraîner l'envoi d'une erreur 500 sur le serveur fb.ui?
  2. Est-ce que FB échoue automatiquement les tentatives suivantes sans toucher un site demandeur?

Répondre

1

Wow. Merci aux ingénieurs Facebook de vous avoir épargné 5 minutes de documentation pour que moi et d'autres puissent perdre des heures. Je rapporterai ce que j'ai trouvé. Si d'autres trouvent des informations supplémentaires ou plus précises, n'hésitez pas à commenter.

Il s'avère que FB teste l'OG: Url qu'il reçoit en allant à mon lien d'envoi fb.ui de http://my.domain/page/?invite=xyz.

OG: l'URL doit être "http: //mon.domaine/page". Le (s) paramètre (s) sont ignorés. Aucune redirection n'est autorisée. Dans mon cas, à chaque fois que la page a le paramètre invite_id, elle est redirigée. Vérification de l'agent utilisateur des requêtes autorisées à détecter le bot FB. Cependant, j'ai trouvé que parfois, FB envoie également le bitlybot. Donc, vous devez attraper ça aussi. Il est fort probable que les choses se casseront si un bot différent est utilisé dans le futur.

Vous avez une chance de tester chaque URL car FB met en cache le résultat. Si vous réessayez, FB ne teste pas le lien. Si fb.ui a réussi, il continuera à réussir. Sinon, il continuera à échouer. Cette mise en cache dure - nous devons juste deviner.

Espérons que cela aide. Il est temps de redevenir productif ...

Questions connexes