NowCoreService 클래스 - iOS

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기12분
  • NowCoreService 클래스는 다양한 SDK 기능 서비스에 기본 서비스를 제공합니다. 이 클래스는 NowSDK에 의해서만 인스턴스화되어야 합니다.

    Now Analytics 및 NowChat과 같은 기능 서비스는 NowSDK.core 속성을 통해 공유 코어 인스턴스에 액세스할 수 있습니다.

    NowCoreService - accessTokenDidFail(서비스의 경우: NowService)

    지정된 서비스의 인스턴스에 대한 API 요청을 ServiceNow 승인하는 데 사용되는 액세스 토큰이 더 이상 유효하지 않음을 SDK 코어에 알립니다.

    SDK 코어는 유효한 액세스 토큰을 생성할 수 있거나 오류를 반환하는 경우 유효한 액세스 토큰을 반환합니다.

    주:
    이 메서드는 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    표 1. 매개변수
    이름 유형 설명
    서비스용 나우서비스 접근 토큰을 요청하는 피처 서비스입니다.
    표 2. 반환
    유형 설명
    AnyPublisher<NowSDK.AccessToken, AccessTokenProviderError> 성공: 올바른 접근 토큰입니다.

    실패: AccessTokenProviderError

    가능한 값:
    • userSessionError (영문)
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens - 게스트 사용자를 나타냅니다.

    NowSDK.core()?.accessTokenDidFail(for: someService)
      .mapError { YourCustomError.accessTokenFailed($0) }
    
    .flatMap(self.handleFailedAccessToken())
      .eraseToAnyPublisher()

    NowCoreService - accessTokenDidFail(서비스의 경우: NowService) 비동기 throws

    지정된 서비스의 인스턴스에 대한 API 요청을 ServiceNow 승인하는 데 사용되는 액세스 토큰이 더 이상 유효하지 않음을 SDK 코어에 알립니다.

    SDK 코어는 유효한 액세스 토큰을 생성할 수 있거나 오류를 반환하는 경우 유효한 액세스 토큰을 반환합니다.

    표 3. 매개변수
    이름 유형 설명
    서비스용 나우서비스 접근 토큰을 요청하는 피처 서비스입니다.
    표 4. 반환
    유형 설명
    NowSDK.AccessToken 메서드가 성공하면 반환됩니다. 유효한 접근 토큰입니다.
    AccessTokenProviderError (영문) 메서드가 실패할 때 throw됩니다. 접근 토큰을 검색하는 동안 오류가 발생했음을 나타냅니다.
    가능한 값:
    • userSessionError (영문)
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens - 게스트 사용자를 나타냅니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    do {
        let accessToken = try await NowSDK.core()?.accessTokenDidFail(for: someService)
    } catch {
        self.handleFailedAccessToken(error)
    }

    NowCoreService - canRequestPermission(_ permission: DevicePermission)

    서비스가 장치 권한을 요청할 수 있는지 여부에 대해 호스트 응용 프로그램을 쿼리합니다.

    이 함수는 권한을 요청하지 않고 디바이스 권한을 쿼리할 수 있는지 여부만 요청합니다. 기능 서비스는 이 함수를 호출하여 원하는 디바이스 권한을 요청할 수 있는지 확인해야 합니다.

    표 5. 매개변수
    이름 유형 설명
    허가 장치 권한 요청이 이루어지는 장치입니다.
    가능한 값(대/소문자 구분):
    • 카메라
    • 위치
    • 마이크
    • 포토라이브러리
    • speach인식
    표 6. 반환
    유형 설명
    부울 호스트 애플리케이션에서 SDK가 지정된 디바이스 권한을 요청할 수 있는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 장치 권한을 요청할 수 있습니다.
    • false: 장치 권한을 요청할 수 없습니다.

    extension AppDelegate: DevicePermissionDelegate {
      func canRequestPermission(_ permission: DevicePermission) -> Bool {
        return true
      }
    }

    NowCoreService - isGuestUser(서비스의 경우: NowService) 비동기

    현재 사용자가 게스트 사용자인지 확인합니다.

    표 7. 매개변수
    이름 유형 설명
    서비스용 나우서비스 게스트 사용자 확인을 수행할 기능 서비스입니다.
    표 8. 반환
    유형 설명
    부울 현재 사용자가 게스트 사용자인지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 지정된 서비스의 현재 사용자가 게스트 사용자입니다.
    • false: 지정된 서비스의 현재 사용자가 게스트 사용자가 아닙니다.

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    let isGuestUser = await NowSDK.core()?.isGuestUser(for: someService)

    NowCoreService - refreshAllSettings()

    활성 서버에서 다시 가져와 모든 서비스에 대한 모든 SDK 설정을 새로 고칩니다.

    새로 고쳐질 때마다 업데이트된 SDK 설정 값을 받으려면 함수에서 제공하는 NowCoreService - settingsPublisher(서비스용: NowService) 게시자를 구독합니다.

    표 9. 매개변수
    이름 유형 설명
    없음
    표 10. 반환
    유형 설명
    없음

    NowSDK.core()?.refreshAllSettings()

    NowCoreService - refreshSettings(서비스용: NowService)

    지정된 서비스에 대한 SDK 설정을 서버에서 다시 가져와 새로 고칩니다.

    주:
    이 메서드는 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    표 11. 매개변수
    이름 유형 설명
    서비스용 나우서비스 설정 새로 고침을 요청하는 NowChat 또는 NowAnalytics와 같은 기능 서비스.
    표 12. 반환
    유형 설명
    AnyPublisher<Settings, SettingsError> 성공: 새로 고쳐진 SDK 설정의 딕셔너리. 피처 서비스는 반환된 데이터에서 특정 피처와 관련된 설정을 검사해야 합니다.

    실패: SettingsError - 발생한 오류의 유형 및 설명입니다.

    가능한 값:
    • fetchError
    • 페치 실패
    • 유효하지 않은 JSON
    • invalidProvider (영문)
    • 인증되지 않음
    • sdk라이센스가 없음
    • settingNotFound
    • 알 수 없음

    var subscriptions = Set<AnyCancellable>()
    NowSDK.core?.refreshSettings(for: someService)
      .sink(receiveCompletion: { completion in
        if case .failure(let error) = completion {
          print("Refresh failed with error:\ (error)")
        }
      }, receiveValue: { settings in
        print("Received refreshed settings:\ (settings)")
      })
      .store(in: &subscriptions)

    NowCoreService - refreshSettings(서비스용: NowService) 비동기 throws

    지정된 서비스에 대한 SDK 설정을 서버에서 다시 가져와 새로 고칩니다.

    표 13. 매개변수
    이름 유형 설명
    서비스용 나우서비스 설정 새로 고침을 요청하는 NowChat 또는 NowAnalytics와 같은 기능 서비스.
    표 14. 반환
    유형 설명
    설정 메서드가 성공하면 반환됩니다. 새로 고친 SDK 설정의 딕셔너리입니다. 피처 서비스는 반환된 데이터에서 특정 피처와 관련된 설정을 검사해야 합니다.
    SettingsError 메서드가 실패할 때 throw됩니다.
    가능한 값:
    • fetchError
    • 페치 실패
    • 유효하지 않은 JSON
    • invalidProvider (영문)
    • 인증되지 않음
    • sdk라이센스가 없음
    • settingNotFound
    • 알 수 없음

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    do {
        let settings = try await NowSDK.core()?.refreshSettings(for: someService)
        print("Received refreshed settings: \(settings)")
    } catch {
        print("Refresh failed with Settings error: \(error)")
    }

    NowCoreService - requestAccessToken(서비스의 경우: NowService)

    지정된 서비스에 대한 접근 토큰을 획득합니다.

    주:
    이 메서드는 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    표 15. 매개변수
    이름 유형 설명
    서비스용 나우서비스 접근 토큰을 요청하는 피처 서비스입니다.
    표 16. 반환
    유형 설명
    AnyPublisher<NowSDK.AccessToken, AccessTokenProviderError> 성공: NowSDK.AccessToken - 인스턴스에 대한 API 요청을 승인하는 데 사용할 액세스 토큰입니다 ServiceNow .

    실패: AccessTokenProviderError - 발생한 오류의 유형 및 설명입니다.

    가능한 값:
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens - 게스트 사용자를 나타냅니다.
    • userSessionError (영문)

    NowSDK.core()?.requestAccessToken(for: someService)

    NowCoreService - requestAccessToken(서비스용: NowService) 비동기 throws

    지정된 서비스에 대한 접근 토큰을 획득합니다.

    표 17. 매개변수
    이름 유형 설명
    서비스용 나우서비스 접근 토큰을 요청하는 피처 서비스입니다.
    표 18. 반환
    유형 설명
    NowSDK.AccessToken 메서드가 성공하면 반환됩니다. 인스턴스에 대한 API 요청을 승인하는 데 사용할 액세스 토큰입니다 ServiceNow .
    AccessTokenProviderError (영문) 메서드가 실패할 때 throw됩니다. 접근 토큰을 검색하는 동안 오류가 발생했음을 나타냅니다.
    가능한 값:
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens - 게스트 사용자를 나타냅니다.
    • userSessionError (영문)

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    do {
        let accessToken = try await NowSDK.core()?.requestAccessToken(for: someService)
    } catch {
        self.handleFailedAccessToken(error)
    }

    NowCoreService - requestNetworkService(서비스용: NowService)

    API 요청을 수행하는 데 사용할 수 있는 공유 네트워크 서비스에 대한 참조를 반환합니다.

    주:
    공유 서비스입니다. 설정을 변경하거나 세션을 종료하면 이 세션을 공유하는 다른 피처 서비스에 문제가 발생할 수 있습니다.
    표 19. 매개변수
    이름 유형 설명
    서비스용 나우서비스 네트워크 서비스를 요청하는 피처 서비스입니다.
    표 20. 반환
    유형 설명
    네트워크 서비스 API 호출에 사용할 수 있는 공유 네트워크 서비스입니다.

    다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    NowSDK.core()?.settingsPublisher(for: chatService)
    .sink(receiveCompletion: { completion in
      if case .failure(let error) = completion {
        // Setting publisher failed with error
      }
    }, receiveValue: { updatedSettings in
      // Receive array of SDK settings for chatService
    })
    .store(in: &subscriptions)

    NowCoreService - requestSettings(forservice: NowService)

    지정된 피처 서비스에 대한 SDK 설정을 반환합니다.

    주:
    이 메서드는 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
    표 21. 매개변수
    이름 유형 설명
    for서비스 나우서비스 설정을 요청하는 피처 서비스입니다.
    표 22. 반환
    유형 설명
    AnyPublisher<Settings, SettingsError> 성공: 설정 - 지정된 기능 서비스에 대한 SDK 설정의 배열입니다.

    실패: SettingsError - 관련 오류의 유형 및 설명입니다.

    가능한 값:
    • fetchError
    • 페치 실패
    • 유효하지 않은 JSON
    • invalidProvider (영문)
    • 인증되지 않음
    • sdk라이센스가 없음
    • settingNotFound
    • 알 수 없음

    NowSDK.core()?.requestSettings(for: someService)

    NowCoreService - requestSettings(서비스용: NowService) 비동기 throws

    지정된 피처 서비스에 대한 SDK 설정을 반환합니다.

    표 23. 매개변수
    이름 유형 설명
    서비스용 나우서비스 설정을 요청하는 피처 서비스입니다.
    표 24. 반환
    유형 설명
    설정 메서드가 성공하면 반환됩니다. 지정된 기능 서비스에 대한 SDK 설정의 배열입니다.
    SettingsError 메서드가 실패할 때 throw됩니다. 관련 오류의 유형 및 설명입니다.
    가능한 값:
    • fetchError
    • 페치 실패
    • 유효하지 않은 JSON
    • invalidProvider (영문)
    • 인증되지 않음
    • sdk라이센스가 없음
    • settingNotFound
    • 알 수 없음

    다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.

    do {
        let settings = try await NowSDK.core()?.requestSettings(for: someService)
        print("Received settings: \(settings)")
    } catch {
        print("Refresh saved with Settings error: \(error)")
    }

    NowCoreService - settingsPublisher(서비스용: NowService)

    지정된 서비스의 게시자에 대한 설정을 검색합니다.

    표 25. 매개변수
    이름 유형 설명
    서비스용 NowService 프로토콜 - iOS 발행자 구독을 요청하는 피처 서비스입니다.
    표 26. 반환
    유형 설명
    AnyPublisher<Settings, Never> 성공: 설정 - 지정된 기능 서비스에 대한 SDK 설정의 배열입니다.

    다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    NowSDK.core()?.settingsPublisher(for: chatService)
    .sink(receiveCompletion: { completion in
      if case .failure(let error) = completion {
        // Setting publisher failed with error
      }
    }, receiveValue: { updatedSettings in
      // Receive array of SDK settings for chatService
    })
    .store(in: &subscriptions)