根据聊天文档:
// creates the response array
$resp_array = array(
'method' => $challenge_array['method'],
'nonce' => $challenge_array['nonce'],
'access_token' => $access_token,
'api_key' => $options['app_id'],
'call_id' => 0,
'v' => '1.0',
);
// creates signature
$response = http_build_query($resp_array);
所以我改变了下面的代码:
[buffer appendFormat:@"api_key=%@&", self.app_key];
[buffer appendFormat:@"call_id=%d&", rand()];
[buffer appendFormat:@"method=%@&", self.method];
[buffer appendFormat:@"nonce=%@&", self.nonce];
[buffer appendFormat:@"access_token=%@&",self.accessToken];
[buffer appendFormat:@"v=%@&",@"1.0"];
NSData *utf8data = [buffer dataUsingEncoding:NSUTF8StringEncoding];
然后将[utf8data base64Encoded]
发送到fb服务器
但仍然会获得unauthentication错误。
RECV: <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>
显然,我更换了session_key&amp; sig with accesstoken。
我省略了什么吗?
我不知道如何解决这个问题。
答案 0 :(得分:1)
确保您还使用TLS。在PHP代码示例中:http://developers.facebook.com/docs/chat/如果搜索$ START_TLS,您将看到如何处理