根据聊天文档:
// 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服务器
但仍会出现未验证错误。
RECV: <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>
显然,我用 accesstoken 替换了 session_key & sig。
我遗漏了什么吗?
我不知道如何杀死这个麻烦。