首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聊天登录不起作用?(Quickblox)

聊天登录不起作用?(Quickblox)
EN

Stack Overflow用户
提问于 2015-08-11 09:25:22
回答 1查看 977关注 0票数 0

我一直使用相同的代码登录用户聊天。

代码语言:javascript
复制
  var user = QBUUser()   
  user.ID = session.userID    
   user.login = "123456"
   user.password = "password" 

 QBChat.instance().loginWithUser(user)

但是在过去的5天里,我得到了一个错误,即用户必须登录才能聊天。

2015-08-11 12:13:48.690买方3063:73416-QBChat(反对) sendMessage:->返回。您必须登录才能使用聊天API。

有什么变化我不知道吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-11 10:02:32

确保您首先有一个有效的会话。下面是我正在使用的代码,它非常完美地工作,就像您使用完成句柄来确保用户在执行其他操作之前登录。

代码语言:javascript
复制
//MARK: - Completions
var logincompletion: ((success: Bool) -> ())? 
//MARK: - Login

func loginUser(login: String, password: String, completion:
    ((success: Bool) -> ())? = nil) {
        self.logincompletion = completion
        var parameters: QBSessionParameters = QBSessionParameters()

        parameters.userEmail = login
        parameters.userPassword = password

        QBRequest.createSessionWithExtendedParameters(parameters, successBlock: { (response: QBResponse!, session: QBASession!) -> Void in

            var currentUser = QBUUser()
            currentUser.ID = session.userID
            currentUser.password = password
            currentUser.login = login 

            QBChat.instance().addDelegate(self)
            QBChat.instance().loginWithUser(currentUser)

            }) { (response: QBResponse!) -> Void in
                if self.logincompletion != nil {
                    self.logincompletion!(success: false)
                }
        }
}

下面是我调用此代码的一个示例:

代码语言:javascript
复制
ChatManager.SharedInstance.loginUser(UserManager.SharedInstance.user!.email, password: UserManager.SharedInstance.user!.account_id) { (success) -> () in   
        println("Logged into QuickBlox: \(success)")
        if let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
            if appDelegate.deviceTokenData != nil {
                var deviceIdentifier = UIDevice.currentDevice().identifierForVendor.UUIDString
                QBRequest.registerSubscriptionForDeviceToken(appDelegate.deviceTokenData, uniqueDeviceIdentifier: deviceIdentifier, successBlock: { (response: QBResponse!, session: [AnyObject]!) -> Void in
                    println("registered for push")
                    }) { (error: QBError!) -> Void in
                        println("could not reigster for push: \(error)")
                }
            }
        }
    }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31937982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档