Facebook聊天报告”;“未经授权”;,虽然";xmpp“U登录”;准予
我正在尝试将facebook聊天功能集成到我们的移动Flash/AIR应用程序中,并将其用于XMPP。当然,我不得不修改一些文件,以适应使用access_令牌而不是sig和secret的较新Facebook API 对于那些熟悉xiff/smack API的人,下面是我如何建立连接的:Facebook聊天报告”;“未经授权”;,虽然";xmpp“U登录”;准予,facebook,actionscript-3,flash,xmpp,x-facebook-platform,Facebook,Actionscript 3,Flash,Xmpp,X Facebook Platform,我正在尝试将facebook聊天功能集成到我们的移动Flash/AIR应用程序中,并将其用于XMPP。当然,我不得不修改一些文件,以适应使用access_令牌而不是sig和secret的较新Facebook API 对于那些熟悉xiff/smack API的人,下面是我如何建立连接的: XFacebookPlatform.setFacebookSessionValues(AppData.FACEBOOK_APP_ID, AppData.getInstance().getFBSession().a
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);
基本上,我用IMO应该采用的正确格式回答了这一挑战:
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"/>
我想这应该足够了
但我仍然得到了“未授权”的失败。
你知道这里出了什么问题吗?有趣的是,问题是这句话:
var con :XMPPConnection = new XMPPConnection();
var con :XMPPTLSConnection = new XMPPTLSConnection();
必须用以下行替换:
var con :XMPPConnection = new XMPPConnection();
var con :XMPPTLSConnection = new XMPPTLSConnection();
就这样。facebook聊天仅通过TLS连接进行身份验证
虽然这是有道理的,但是
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<not-authorized xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
在这里是非常具有误导性的,因为这意味着有权利的东西是错误的