如何开始使用 Quickblox API 和 Swift?

Posted

技术标签:

【中文标题】如何开始使用 Quickblox API 和 Swift?【英文标题】:How can I get started with Quickblox API and Swift? 【发布时间】:2017-07-11 11:32:38 【问题描述】:

我正在尝试使用 quickblox 和 swift 开发一个非常简单的聊天应用程序。

知道网上几乎没有尝试解释该过程的教程,我开始在应用程序仪表板中创建一个用户并获取其凭据以启动连接。 (我确信用户凭据是正确的,并且仪表板设置正确,因为我遵循了这个tutorial)

这是应用程序视图控制器:

        import UIKit
        import Quickblox

        class ViewController: UIViewController 



            override func viewDidLoad() 
                super.viewDidLoad()


                let user = QBUUser()
                user.id = 29777469
                user.password = "tahrisqalli"




                QBChat.instance().connect(with: user)  (error) in
                    if error != nil 
                        print("error: \(error)")
                    
                    else 
                        print("login to chat succeeded")

                    
                

            

        

下面是我得到的错误,告诉我我没有成功连接。

2017-07-11 11:33:50.837 QuickbloxTutorial[1045:24701] [ChatService] Connecting to Chat, host: chat.quickblox.com, user JID: 29777469-0@chat.quickblox.com/DCB0A1F4-3A56-49AD-9639-8C2A6BBE7B08
    2017-07-11 11:33:52.042 QuickbloxTutorial[1045:24711] [ChatService] Stream isSecure: YES
    2017-07-11 11:33:52.658 QuickbloxTutorial[1045:24722] [ChatService] Stream did connect, supportsStartTLS: YES
    2017-07-11 11:33:52.824 QuickbloxTutorial[1045:24722] [ChatService] Did not authenticate, error: <failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>
    error: Optional(Error Domain=com.quickblox.chat Code=401 "<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>" UserInfo=NSLocalizedDescription=<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>)
    2017-07-11 11:33:52.842 QuickbloxTutorial[1045:24722] [ChatService] Did disconnect

【问题讨论】:

【参考方案1】:

首先,您必须使用用户登录。

在此之后,您可以连接聊天,最好使用自动管理会话的ServicesManager 类。

let loginUser = QBUUser()
loginUser.id = 29777469
loginUser.password = "tahrisqalli"

ServicesManager.instance().authService.logInWithUser(loginUser, completion:  (response, qbUser) in
if qbUser != nil 
     ServicesManager.instance().chatService.connectWithCompletionBlock  (error) in
          if error != nil 
             print("user not connected error: ",error?.description)
           else 
             //user connect successfully
          
     
     print(qbUser)
 else 
     print(response.error?.description)
  
)

【讨论】:

能否知道我创建的用户qbUser和loginUser之间的区别,如何获取他们每个人的凭据? 在我有 ')' 的行中,我收到某种语法错误,告诉我“预期的表达式” 我得到“使用未解析的 Identifier ServicesManager”,我应该导入一些东西吗? 您可以从以下地址获取文件:github.com/QuickBlox/quickblox-ios-sdk/tree/master/… 基本上,您必须创建一个该类的实例,即 sharedInstance。

以上是关于如何开始使用 Quickblox API 和 Swift?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 api 创建 quickblox 应用程序?

如何使用 php api 在 QuickBlox 中更新用户个人资料图片?

如何在 PHP 中生成 QuickBlox 身份验证签名?

QuickBlox:无法使用 REST api 获得推送通知

如何在 QuickBlox 中禁用日志语句?

在 Quickblox 中通过 REST API 过滤用户