0

根据聊天文档:

 // 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。

我遗漏了什么吗?

我不知道如何杀死这个麻烦。

4

1 回答 1

1

确保您也在使用 TLS。在 PHP 代码示例中:http: //developers.facebook.com/docs/chat/ 如果您搜索 $START_TLS,您将看到这是如何处理的

于 2011-10-13T18:39:17.173 回答