Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS应用程序中配置XMPP Facebook聊天_Ios_Objective C_Xmppframework_Facebook Chat - Fatal编程技术网

如何在iOS应用程序中配置XMPP Facebook聊天

如何在iOS应用程序中配置XMPP Facebook聊天,ios,objective-c,xmppframework,facebook-chat,Ios,Objective C,Xmppframework,Facebook Chat,我正在开发一个使用Facebook聊天功能的iOS应用程序 (我正在使用Robbie Hanson的XMPPFramework) 在connect方法中,我已经给出了我的用户名和密码 - (BOOL)connect { if (![xmppStream isDisconnected]) { return YES; } NSString *myJID = [[NSUserDefaults standardUserDefaults] stringForKe

我正在开发一个使用Facebook聊天功能的iOS应用程序

(我正在使用Robbie Hanson的XMPPFramework)

在connect方法中,我已经给出了我的用户名和密码

- (BOOL)connect
{
    if (![xmppStream isDisconnected]) {
        return YES;
    }

    NSString *myJID = [[NSUserDefaults standardUserDefaults] stringForKey:kXMPPmyJID];
    NSString *myPassword = [[NSUserDefaults standardUserDefaults] stringForKey:kXMPPmyPassword];

    //
    // If you don't want to use the Settings view to set the JID, 
    // uncomment the section below to hard code a JID and password.
    // 

     myJID = @"example@facebook.com";
     myPassword = @"Mypassword";

    if (myJID == nil || myPassword == nil) {
        return NO;
    }

    [xmppStream setMyJID:[XMPPJID jidWithString:myJID]];
    password = myPassword;

    NSError *error = nil;
    if (![xmppStream connectWithTimeout:XMPPStreamTimeoutNone error:&error])
    {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error connecting" 
                                                            message:@"See console for error details." 
                                                           delegate:nil 
                                                  cancelButtonTitle:@"Ok" 
                                                  otherButtonTitles:nil];
        [alertView show];

        DDLogError(@"Error connecting: %@", error);

        return NO;
    }
在上游方法中,我给出了我的主机名和端口号

- (void)setupStream
{
    NSAssert(xmppStream == nil, @"Method setupStream invoked multiple times");


    xmppStream = [[XMPPStream alloc] init];

    #if !TARGET_IPHONE_SIMULATOR
    {


        xmppStream.enableBackgroundingOnSocket = YES;
    }
    #endif



    xmppReconnect = [[XMPPReconnect alloc] init];



    xmppRosterStorage = [[XMPPRosterCoreDataStorage alloc] init];


    xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:xmppRosterStorage];

    xmppRoster.autoFetchRoster = YES;
    xmppRoster.autoAcceptKnownPresenceSubscriptionRequests = YES;



    xmppvCardStorage = [XMPPvCardCoreDataStorage sharedInstance];
    xmppvCardTempModule = [[XMPPvCardTempModule alloc] initWithvCardStorage:xmppvCardStorage];

    xmppvCardAvatarModule = [[XMPPvCardAvatarModule alloc] initWithvCardTempModule:xmppvCardTempModule];


    xmppCapabilitiesStorage = [XMPPCapabilitiesCoreDataStorage sharedInstance];
    xmppCapabilities = [[XMPPCapabilities alloc] initWithCapabilitiesStorage:xmppCapabilitiesStorage];

    xmppCapabilities.autoFetchHashedCapabilities = YES;
    xmppCapabilities.autoFetchNonHashedCapabilities = NO;

    // Activate xmpp modules

    [xmppReconnect         activate:xmppStream];
    [xmppRoster            activate:xmppStream];
    [xmppvCardTempModule   activate:xmppStream];
    [xmppvCardAvatarModule activate:xmppStream];
    [xmppCapabilities      activate:xmppStream];

    // Add ourself as a delegate to anything we may be interested in

    [xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()];
    [xmppRoster addDelegate:self delegateQueue:dispatch_get_main_queue()];


    [xmppStream setHostName:@"chat.facebook.com"];
    [xmppStream setHostPort:5222];


    // You may need to alter these settings depending on the server you're connecting to
    allowSelfSignedCertificates = NO;
    allowSSLHostNameMismatch = NO;
}
有没有我遗漏的步骤?我不知道如何进一步进行。如果有人知道解决办法,请帮助我。请帮帮我
提前感谢。

尝试使用以下方法保护连接:

[xmppStream secureConnection:(NSError *)];

 - (void)xmppStreamDidConnect:(XMPPStream *)sender; 
委托方法


希望有帮助。

我看到您只更改了库的示例项目。设置这些参数时,您是否可以查看聊天好友?即使我的好友列表也不会显示在应用程序中。请帮助我继续学习任何好的教程。当您在示例应用程序的“设置”页面中进行设置时,应该会显示您的好友列表。尽量不要设置主机名。您需要开始使用XMPP文档:
http://xmpp.org/xmpp-protocols/xmpp-core/
这里列出了一些书:
http://xmpp.org/resources/books/
。也许你想买一个。你看过Facebook api了吗。我通过保护连接获得了输出