我如何使用iPhone中的xmppstream对象验证Facebook访问令牌

ven*_*kat 7 iphone xmpp

我正在开发使用xmppframework.I的Facebook聊天应用Facebook上得到访问令牌,但
该访问不是由xmppstream对象进行身份验证:

这是我的setupStream方法

- (void)setupStream
{
   XMPPStream *xmppStream=[[XMPPStream alloc] initWithFacebookAppId:@"443170809037796"];
}   
Run Code Online (Sandbox Code Playgroud)

这是我的连接方法

-(BOOL)connect1
{
    NSLog(@"connect1");
    NSError *error = nil;
    if(![xmppStream isDisconnected]) 
    {
        NSLog(@"isDisconnected");
        return YES;
    } 
    if (![xmppStream connect:&error])
    {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error connecting fb" 
                                                            message:@"See console for error details."
                                                           delegate:nil
                                                  cancelButtonTitle:@"Ok" 
                                                  otherButtonTitles:nil];
        [alertView show];   
        return NO;
    }
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

这是我xmppStreamDidconnect的身份验证委托方法

- (void)xmppStreamDidConnect:(XMPPStream *)sender
{
    isXmppConnected = YES;
    NSError *error = nil;
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [xmppStream authenticateWithFacebookAccessToken:[defaults             objectForKey:@"FBAccessTokenKey"] error:&error];        
}
Run Code Online (Sandbox Code Playgroud)

当我运行这个应用程序时,我得到了一个错误的错误

didNotAuthenticate

任何人都可以解决我的问题PLZ.

小智 0

http://benbiddington.wordpress.com/2010/04/23/facebook-graph-api-getting-access-tokens/\n\n\n http://www.raywenderlich.com/1488/how-to-use-facebooks-new-graph-api-from-your-iphone-app\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何使用 Graph API 验证用户身份

\n\n

OAuth 身份验证的工作原理\n为了向 Facebook 验证用户身份,Graph API 使用新的 OAuth 2.0 协议。不要\xe2\x80\x99担心\xe2\x80\x93这个名字听起来很气势,但它的工作方式实际上非常简单。\n这个想法是你使用Facebook开发者\xe2\x80\x99s门户制作一个应用程序,并且当您这样做时,您会获得一个名为 API 密钥的应用程序的唯一 ID。\n然后,当您想要让用户登录 Facebook 时,您可以在 Web 浏览器中访问以下 URL:\n https://graph.facebook.com /oauth/authorize ?\n client_id=[您的 API 密钥]&\n redirect_uri= http://www.facebook.com/connect/login_success.html& \n scope=[您想要的扩展权限]&\n type=user_agent& \n display=touch\n用户将看到标准的 Facebook 登录页面,他们可以输入用户名和密码,并授予所需的任何权限。\n您不需要\xe2\x80\x99 自己实现redirect_uri \xe2\x80 \x93 您可以只使用 Facebook 的预设,如上所示。预设回调将返回一个访问令牌,这是您\xe2\x80\x99 发出所有未来请求所需的。\n当用户登录时,Facebook 会在 cookie 中存储一些有关登录的信息。因此,下次您尝试登录时,如果cookies已经\xe2\x80\x99t过期,登录将自动完成,无需用户干预!

\n