美文网首页
Swift Zendesk 集成

Swift Zendesk 集成

作者: CYC666 | 来源:发表于2023-03-15 15:13 被阅读0次

集成的话,用pod导入就好了。
accountKey比较难找,技术经理帮忙找到的。


  # 客服【聊天、支持、智能机器人】
  pod 'ZendeskChatSDK'
  pod 'ZendeskSupportSDK'
  pod 'ZendeskAnswerBotSDK'


//
//  ZenDeskManager.swift
//  Chainup
//
//  Created by -- on 2023/3/14.
//  Copyright © 2023 -- --. All rights reserved.
//

// 用来管理ZenDesk客服

import UIKit

// =========== 这些导入库没有清理,请自行少选
import ChatSDK
import ChatProvidersSDK
import MessagingSDK

import ZendeskCoreSDK
import SupportProvidersSDK
import AnswerBotProvidersSDK
import ChatProvidersSDK
import AnswerBotSDK
import SupportSDK

import MessagingSDK
import MessagingAPI
import SDKConfigurations

import AnswerBotSDK
import MessagingSDK
import MessagingAPI
import SDKConfigurations

// ===========

let kZendesk = ZenDeskManager()

class ZenDeskManager: NSObject {
    
    private var tempChatVC = UIViewController()      // 用于临时存储聊天控制器

    // MARK: 开始聊天【加载个人信息】
    func startChatAction(vc: UIViewController) {
        
        // 初始化
        Zendesk.initialize(appId: "--",    // 48个字符
                           clientId: "--",    // 38个字符
                           zendeskUrl: "--")  // 网址
        Support.initialize(withZendesk: Zendesk.instance)
        AnswerBot.initialize(withZendesk: Zendesk.instance, support: Support.instance!)
        
        Chat.initialize(accountKey: "--")  // 32个字符     // 在官方连接给的demo中找到


        // 日志
        Logger.isEnabled = true
        Logger.defaultLevel = .verbose
        
        
        
        if appManager.isLogin() {
            
            // 已经登录
            AssetsNetworkTarget.getUserInfoAction { model in
                
                self.startChatAction2(vc: vc,
                                      name: model.nickName,
                                      email: model.email,
                                      phone: model.mobileNumber)
            }
            
        } else {
            
            // 尚未登录
            self.startChatAction2(vc: vc,
                                  name: "User",
                                  email: "",
                                  phone: "")
        }
    }
    
    // MARK: 开始聊天【跳转】
    private func startChatAction2(vc: UIViewController,
                                         name: String,              // 访客昵称
                                         email: String,             // 访客邮箱
                                         phone: String) {           // 访客手机号
        
        
        // 设置用户
        self.setUserInfoAction(name: name, email: email, phone: phone)

        // 启动聊天
        let identity = Identity.createAnonymous(name: name, email: email)
        Zendesk.instance?.setIdentity(identity)

        let messagingConfiguration = MessagingConfiguration()
        do {

            let answerBotEngine = try AnswerBotEngine.engine()    // 智能机器人【请放在第一位】
            let supportEngine = try SupportEngine.engine()  // 支持
            let chatEngine = try ChatEngine.engine()  // 聊天
            let viewController = try Messaging.instance.buildUI(engines: [answerBotEngine, supportEngine, chatEngine],
                                                                configs: [messagingConfiguration])
            
            
            vc.navigationController?.pushViewController(viewController, animated: true)
            
//            let button = UIBarButtonItem(title: "common_text_close".localized(), style: .plain, target: self, action: #selector(closeChatAction))
//            viewController.navigationItem.leftBarButtonItem = button
//            self.tempChatVC = UINavigationController(rootViewController: viewController)
//            vc.present(self.tempChatVC, animated: true)

        } catch {

            print(error)
            EXAlert.showFail(msg: "c_lang_Failed".localized())
        }
        
        
        
    }

    // MARK: 配置用户信息
    private func setUserInfoAction(name: String,              // 访客昵称
                                          email: String,             // 访客邮箱
                                          phone: String) {           // 访客手机号
        
        let chatAPIConfiguration = ChatAPIConfiguration()
        chatAPIConfiguration.visitorInfo = VisitorInfo(name: name,
                                                       email: email,
                                                       phoneNumber: phone)
        Chat.instance?.configuration = chatAPIConfiguration
    }
    
    // MARK: 退出聊天UI
    @objc private func closeChatAction() {
        
        self.tempChatVC.dismiss(animated: true)
    }
}

相关文章

网友评论

      本文标题:Swift Zendesk 集成

      本文链接:https://www.haomeiwen.com/subject/ptblrdtx.html