Я пытаюсь интегрировать чат facebook в наше мобильное приложение Flash/AIR, и использую XIFF для материала XMPP. Конечно, мне пришлось изменить некоторые файлы для нового API Facebook, который использует access_token вместо sig и secret.Сообщения в чате Facebook «не разрешены», хотя предоставляется «xmpp_login»
Для тех, кто знаком с xiff/привкусом API, вот как я установить соединение:
XFacebookPlatform.setFacebookSessionValues(AppData.FACEBOOK_APP_ID, AppData.getInstance().getFBSession().accessToken);
XMPPConnection.registerSASLMechanism("X-FACEBOOK-PLATFORM", XFacebookPlatform);
var con :XMPPConnection = new XMPPConnection();
con.server = "chat.facebook.com";
con.useAnonymousLogin = true;
con.connect(XMPPConnection.STREAM_TYPE_STANDARD);
.
В принципе, я добраться до точки, где я ответить на вызов с тем, что ИМО должна быть правильный формат:
var responseMap:Dictionary = new Dictionary();
responseMap.api_key = fb_api_key;
responseMap.call_id = 0;
responseMap.method = incomingChallengeMap.method;
responseMap.nonce = incomingChallengeMap.nonce;
responseMap.access_token = user_access_token;
responseMap.v = "1.0";
var challengeResponse:String = "api_key=" + responseMap.api_key;
challengeResponse += "&call_id=" + responseMap.call_id;
challengeResponse += "&method=" + responseMap.method;
challengeResponse += "&nonce=" + responseMap.nonce;
challengeResponse += "&access_token=" + responseMap.access_token;
challengeResponse += "&v=" + responseMap.v;
challengeResponse = Base64.encode(challengeResponse);
.
Ответ передается, но в ответ я получаю следующее:
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<not-authorized xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
Это звучит как я не разрешила «xmpp_login», но я сделал. Я проверил, что через Graph API explorer, и по той же access_token показывает:
{
"data": [
{
"installed": 1,
"xmpp_login": 1,
"user_online_presence": 1,
"friends_online_presence": 1
}
]
}
Это должно быть более чем достаточно, я думаю.
Но все же я получаю «неавторизованный» отказ. Любые идеи, что пошло не так здесь?