L'architecture à Facebook-chat à partir d'une page Web, (XMPP? Strophe? Punjab?)

Je souhaite implémenter FB-chat dans une page Web . J'ai regardé autour de l'API de Facebook, j'ai découvert que le chat est autorisé uniquement en utilisant XMPP. D'abord, j'ai essayé de me connecter à FB-chat à l'aide de Pidgin et cela a bien fonctionné. Ma conclusion était que le serveur FB-chat agit comme serveur XMPP. Est-ce vrai?

J'ai lu sur XMPP, il semble qu'une connexion TCP ouverte soit établie entre le client et le serveur pour échanger les strophes XML qui ne sont pas possibles à partir d'un site Web (sur JavaScript et sans plugins) puisque seules les requêtes / réponses HTTP peuvent être des échanges, Pas de connexion TCP là-bas. Cela signifie qu'il devrait y avoir une sorte de proxy entre les deux, et quant à l'authentification, FB API suggère d'utiliser le X-FACEBOOK-PLATFORM SASL (pas le DIGEST MD5, car il existe un proxy). Je n'ai pas trouvé un tutoriel clair ou des étapes pour le faire, l'aide ici est appréciée.

Un peu plus de recherches sur le client XMPP du Web ou du navigateur, j'ai vu que je devais utiliser une bibliothèque appelée Strophe (basée sur le protocole BOSH ) et dans d'autres réponses, un type de gestionnaire de connexion appelé Punjab . J'ai lu ce protocole BOSH, il semble que ce soit la solution, mais dans certains endroits, j'ai découvert que ce n'est pas autorisé dans FB (je ne suis pas sûr de savoir si les informations sont correctes). J'ai essayé de configurer ces derniers, mais j'ai été totalement confus, comment commencer et ce que je suis vraiment censé faire.

Pour la strophe, je n'ai pas trouvé un véritable tutoriel sur la façon de l'implémenter, et dans ce que j'ai trouvé, ils suggèrent de configurer d'abord un serveur jabber comme ejabberd (je n'en ai pas besoin).

Ma question est:

Quelqu'un peut-il proposer une architecture que je devrais mettre en œuvre pour atteindre mon objectif?

Donc, il y aura: page Web -> (HTTP) -> Strophe -> (TCP) -> FB-chat OU aura-t-il un serveur XMPP entre et pourquoi?

J'apprécierais toute réponse à toutes mes questions. Veuillez suggérer quelques liens sur la façon de mettre en œuvre toutes ces choses. Je suis totalement nouveau dans tout cela qui m'a fait perdre depuis plus d'une semaine.

Si quelqu'un a déjà fait cela, aidez-nous. Merci beaucoup.

Sabah

J'essaie de résoudre ce problème aussi. Jusqu'à présent, j'ai décidé d'établir:

Jappix mini (utilise la bibliothèque JSJAC.js) <-> node-xmpp-bosh sur node.js sur mon serveur <-> serveur Facebook.

Jappix mini était difficile à trouver, mais il semble de loin la meilleure barre de discussion open source. Il faut donc mentionner ici.

Je ne l'ai pas encore configuré, mais je vais mettre à jour ici si je fais des progrès. La question principale sera de faire en sorte que JSJAC utilise l'authentification de l'API de l'API Facebook. Je ne peux pas trouver d'informations ou d'exemples pour cela, mais j'ai trouvé ce plugin pour la bibliothèque strophe qui peut être adapté:

https://github.com/rubenjgarciab/turedsocial/blob/master/strophe-plugins/src/facebook.js

Enfin, vous ne pouvez pas inclure votre clé de secret Facebook dans javascript (car c'est un secret!), Vous devez donc utiliser Facebook REST API auth.promoteSession côté serveur pour produire une clé de session-secret qui peut être utilisée dans javascript pour signer X -FACEBOOK-PLATFORM demande d'authentification.

J'espère que cela aidera, j'ajouterai plus si je le fais fonctionner.

Informations sur le serveur de chat Facebook:

Protocol: XMPP or Jabber Username: mathvdh Domain: chat.facebook.com Jabber ID: [email protected] Password: <your Facebook password> Port: 5222 Server: chat.facebook.com Use SSL/TLS: no Allow plaintext authentication: no 

Je pense que la strophe et le punjab devraient être une combinaison de travail pour le chat fb, voir ici: la bibliothèque XMPP pour le chat sur Facebook

Et je pense que le schéma serait plus comme:

Page web du client / js / strophe <-> votre serveur / punjab <-> serveur de chat Facebook xmpp

Sabah

Comme mentionné dans les réponses précédentes, le Punjab <-> strophe.js fonctionne. J'ai renvoyé le client Facebook Strophe ici: https://github.com/javierfigueroa/turedsocial et j'ai ajouté un exemple.

J'espère que cela t'aides.