NowChat API - iOS

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • NowChat API は、ユーザーが NowChat サービスインスタンスをインスタンス化できるようにするトップレベルのグローバル API です。

    NowChat - makeChatService(instanceUrl: URL, delegate: NowChatServiceDelegate?)

    指定された構成で NowChatService のインスタンスを作成します。

    注:
    この関数を呼び出す前に SDK を初期化しないと、 sdkNotConfigured エラーで完了ブロックが呼び出されます。SDK を初期化するには、必要な構成で NowSDK.configure() メソッドを呼び出します。
    表 : 1. パラメーター
    名前 タイプ 説明
    instanceUrl URL チャットサービスを提供する ServiceNow インスタンスの URL。
    代理人 NowChatServiceDelegate オプション。NowChatServiceDelegate プロトコルを実装する Delegate オブジェクト。
    表 : 2. 戻り値
    タイプ 説明
    AnyPublisher<NowChatService、NowServiceError> 成功すると、初期化された NowChatService オブジェクトを返します。失敗した場合は、NowServiceError オブジェクトを返します。

    次のコード例は、この関数を呼び出す方法を示しています。

    ….
    guard 
      let jwtUrl = URL(string: "http://xx.xx.xx.xxx:8080"),
      let instanceUrl = URL(string: "https://instance.service-now.com") else {
        return
      }
    // AuthorizationProvider – struct conforming to NowSDKAuthorizationProviding protocol
    let authorizationProvider = AuthorizationProvider(userEmail: "sdk@servicenow.com", jwtProviderUrl: jwtUrl, clientId: "deb8756b452d201039231ca568f26511")
            
    // PermissionProvider – class conforming to DevicePermissionDelegate protocol
    let permissionProvider = PermissionProvider()
    let config = NowSDKConfiguration(authorizationProvider: authorizationProvider, permissionDelegate: permissionProvider, logLevel: .debug)
    	
    do {
      try NowSDK.configure(with: config)
      let chat = setup(with: instanceUrl)
    } catch {
      // Return ConfigurationError.sdkError(error)
    }
    …..
    
    func initializeChatService(with instanceURL: URL) -> AnyPublisher<NowService, ConfigurationError> {
      NowChat.makeChatService(instanceUrl: instanceURL, delegate: nil)
      .mapError { .sdkError($0) }
      .map { $0 as NowService }
      .eraseToAnyPublisher()
    }

    NowChat - makeChatService(instanceUrl: URL, delegate: NowChatServiceDelegate?, completion: @escaping ((Result<NowChatService, NowServiceError>) -> Void))

    指定された構成で NowChatService のインスタンスを作成し、完了すると、指定された完了ハンドラーを呼び出します。

    注:
    この関数を呼び出す前に SDK を初期化しないと、 sdkNotConfigured エラーで完了ブロックが呼び出されます。SDK を初期化するには、必要な構成で NowSDK.configure() メソッドを呼び出します。
    表 : 3. パラメーター
    名前 タイプ 説明
    instanceUrl URL チャットサービスを提供する ServiceNow インスタンスの URL。
    代理人 NowChatServiceDelegate オプション。NowChatServiceDelegate プロトコルを実装する Delegate オブジェクト。
    完了 @escaping ((result<NowChatService, NowServiceError>) -> void) 初期化された NowChatService インスタンス、または初期化が失敗した理由を示す NowServiceError のいずれかを含む、呼び出される完了ハンドラー。
    表 : 4. 戻り値
    タイプ 説明
    なし

    次のコード例は、この関数を呼び出す方法を示しています。

    func initializeChatService() {
      NowChat.makeChatService(instanceUrl: instanceUrl, delegate: self) { [weak self] result in
        guard let self = self else { return }
                
        switch result {
        case .success(let service):
          self.chatService = service
        case .failure(let error):
          debugPrint("Creating the chat service failed with error: \(error)")
        }
        self.viewState = self.makeViewState()
      }
    }