2015-08-11 8 views
0

Я использую тот же код для входа пользователя в чатчат Логин не работает? (Quickblox)

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 buyzar [3063: 73416] - [QBChat (Устаревший) sendMessage:] -> return. Вы должны войти, чтобы использовать Chat API.

Есть ли какие-либо изменения, о которых я не знаю?

+0

Привет Кадер, как вы получите код, доступна ли она в quickblox, я не мог найти документацию на стрижа. – Vinod

ответ

2

Убедитесь, что у вас есть действующий сеанс. Вот код, который я использую, и он отлично работает, когда вы используете дескриптор завершения, чтобы убедиться, что пользователь зашел в систему, прежде чем делать что-либо еще.

//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) 
       } 
     } 
} 

Вот пример мне называя этот код:

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)") 
       } 
      } 
     } 
    } 
+0

Можете ли вы показать, что это называется? Вы говорите: «вы используете дескриптор завершения, чтобы убедиться, что пользователь зашел в систему, прежде чем делать что-либо еще» ... – Damo

+0

Редактировал ответ, чтобы показать его. Я делаю это на панели инструментов моего приложения, а затем, когда вы нажимаете на чат, все готово к работе – Swinny89

+0

спасибо Swinny89 –

Смежные вопросы