Je veux construire un client XMPP sur Android, je l'ai fonctionne parfaitement avec l'authentification en utilisant Digest-MD-5, mais quand je tente de le convertir en X-FACEBOOK- PLATEFORME il continue d'échouer.Facebook chat - X-FACEBOOK-PLATFORM authentification
Répondre
Donc, fondamentalement, l'authentification X-FACEBOOK-PLATFORM n'utilise qu'une partie d'un jeton d'accès. C'est ce qu'on appelle la clé de session.
Le jeton d'accès est séparé par "|" caractères, de sorte que vous divisez le jeton d'accès et ne prenez que les caractères qui sont au centre. Voir ci-dessous.
** * *** | a681464febcefb8*- ** |* ** * **
long callId = new GregorianCalendar().getTimeInMillis()/1000L;
String sig = "api_key=" + apiKey
+ "call_id=" + callId
+ "method=" + method
+ "nonce=" + nonce
+ "session_key=" + sessionKey
+ "v=" + version
+ appSecret;
try {
sig = MD5(sig);
}
catch (NoSuchAlgorithmException e) {
throw new IllegalStateException(e);
}
String composedResponse = "api_key=" + URLEncoder.encode(apiKey, "utf-8")
+ "&call_id=" + callId
+ "&method=" + URLEncoder.encode(method, "utf-8")
+ "&nonce=" + URLEncoder.encode(nonce, "utf-8")
+ "&session_key=" + URLEncoder.encode(sessionKey, "utf-8")
+ "&v=" + URLEncoder.encode(version, "utf-8")
+ "&sig=" + URLEncoder.encode(sig, "utf-8");
Je ne me suis jamais FB chat fonctionne avec mon appSecret mais utilisé sessionSecret à la place. Vous pouvez l'obtenir en utilisant l'ancienne API REST.
http://developers.facebook.com/docs/reference/rest/auth.promoteSession/
De cette façon, vous pouvez garder votre appSecret comme un secret. Il vaut également la peine de noter que l'authentification X-FACEBOOK-PLATFORM réussit rarement au premier essai, mais nécessite généralement 3-6 tentatives. Beats moi pourquoi bien que j'utilise la même clé de session et secret ..
Pouvez-vous extraire la partie pertinente de votre téléchargement dans le texte de votre question, s'il vous plaît? –