NowCoreService クラス - iOS

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:13分
  • NowCoreService クラスは、さまざまな SDK 機能サービスに基本的なサービスを提供します。このクラスは、NowSDK によってのみインスタンス化する必要があります。

    Now Analytics や NowChat などの機能サービスは、NowSDK.core プロパティを介して共有コアインスタンスにアクセスできます。

    NowCoreService - accessTokenDidFail (サービス:NowService の場合)

    指定されたサービスの ServiceNow インスタンスへの API 要求を許可するために使用されるアクセストークンが無効になったことを SDK コアに通知します。

    SDK コアは、有効なアクセス トークンを生成できる場合はそのトークンを返すか、エラーを返します。

    注:
    このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
    表 : 1. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService アクセストークンを要求する機能サービス。
    表 : 2. 返される内容
    タイプ Description (説明)
    AnyPublisher<NowSDK.AccessToken、AccessTokenProviderError> 成功:有効なアクセストークン。

    失敗:AccessTokenProviderError

    可能な値:
    • ユーザーセッションエラー
    • アクセストークン取得に失敗しました
    • hostReturnedNoTokens:ゲストユーザーを示します

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

    NowCoreService - accessTokenDidFail (サービス:NowService の場合) async throws

    指定されたサービスの ServiceNow インスタンスへの API 要求を許可するために使用されるアクセストークンが無効になったことを SDK コアに通知します。

    SDK コアは、有効なアクセス トークンを生成できる場合はそのトークンを返すか、エラーを返します。

    表 : 3. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService アクセストークンを要求する機能サービス。
    表 : 4. 返される内容
    タイプ Description (説明)
    NowSDK.アクセストークン メソッドが成功したときに返されます。有効なアクセストークン。
    アクセストークンプロバイダーエラー メソッドが失敗したときにスローされます。アクセストークンの取得中にエラーが発生したことを示します。
    可能な値:
    • ユーザーセッションエラー
    • アクセストークン取得に失敗しました
    • hostReturnedNoTokens:ゲストユーザーを示します

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

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

    NowCoreService - canRequestPermission(_ permission: DevicePermission)

    サービスがデバイスのアクセス許可を要求できるかどうかをホスト アプリケーションに照会します。

    この関数はアクセス許可を要求せず、デバイスのアクセス許可を照会できるかどうかのみを要求します。フィーチャ サービスは、この関数を呼び出して、目的のデバイス権限の要求が許可されているかどうかを判断する必要があります。

    表 : 5. パラメーター
    名前 タイプ Description (説明)
    権限 デバイス権限 要求対象のデバイス。
    可能な値 (大文字と小文字を区別):
    • カメラ
    • 場所
    • マイク
    • フォトライブラリー
    • speach認識
    表 : 6. 返される内容
    タイプ 説明
    ブーリアン 指定されたデバイス権限の要求を SDK がホストアプリケーションに許可するかどうかを示すフラグ。
    可能な値:
    • true:デバイスの権限を要求できます。
    • false:デバイスの権限を要求できません。

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

    NowCoreService - isGuestUser(サービス:NowService の場合) 非同期

    現在のユーザーがゲストユーザーかどうかを確認します。

    表 : 7. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService ゲスト ユーザー チェックを実行する機能サービス。
    表 : 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. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService 設定の更新を要求する NowChat や NowAnalytics などの機能サービス。
    表 : 12. 返される内容
    タイプ Description (説明)
    AnyPublisher<Settings、SettingsError> 成功:更新された SDK 設定のディクショナリ。フィーチャ サービスは、返されたデータを調べて、特定のフィーチャに関連する設定を確認する必要があります。

    エラー: SettingsError - 発生したエラーの種類と説明。

    可能な値:
    • フェッチエラー
    • fetchFailed
    • 無効な JSON
    • invalidProvider
    • 未承認
    • ライセンスされていない sdk
    • 設定NotFound
    • 不明

    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(for service: NowService) async throws

    指定されたサービスの SDK 設定をサーバーから再フェッチして更新します。

    表 : 13. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService 設定の更新を要求する NowChat や NowAnalytics などの機能サービス。
    表 : 14. 返される内容
    タイプ Description (説明)
    設定 メソッドが成功したときに返されます。更新された SDK 設定のディクショナリ。フィーチャ サービスは、返されたデータを調べて、特定のフィーチャに関連する設定を確認する必要があります。
    設定エラー メソッドが失敗したときにスローされます。
    可能な値:
    • フェッチエラー
    • fetchFailed
    • 無効な JSON
    • invalidProvider
    • 未承認
    • ライセンスされていない sdk
    • 設定NotFound
    • 不明

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

    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. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService アクセストークンを要求する機能サービス。
    表 : 16. 返される内容
    タイプ Description (説明)
    AnyPublisher<NowSDK.AccessToken、AccessTokenProviderError> 成功:NowSDK.AccessToken - ServiceNow インスタンスに対して行われた API 要求を許可するために使用するアクセストークン。

    Failure: AccessTokenProviderError - 発生したエラーのタイプと説明。

    可能な値:
    • アクセストークン取得に失敗しました
    • hostReturnedNoTokens :ゲストユーザーを示します
    • ユーザーセッションエラー

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

    NowCoreService - requestAccessToken(サービス:NowService の場合) async throws

    指定されたサービスのアクセストークンを取得します。

    表 : 17. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService アクセストークンを要求する機能サービス。
    表 : 18. 返される内容
    タイプ Description (説明)
    NowSDK.アクセストークン メソッドが成功したときに返されます。ServiceNowインスタンスに対して行われた API 要求を許可するために使用するアクセストークン。
    アクセストークンプロバイダーエラー メソッドが失敗したときにスローされます。アクセストークンの取得中にエラーが発生したことを示します。
    可能な値:
    • アクセストークン取得に失敗しました
    • hostReturnedNoTokens :ゲストユーザーを示します
    • ユーザーセッションエラー

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

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

    NowCoreService - requestNetworkService (サービス:NowService の場合)

    API 要求を行うために使用できる共有ネットワークサービスへの参照を返します。

    注:
    これは共有サービスです。設定を変更したり、セッションを終了したりすると、このセッションを共有する他のフィーチャ サービスに問題が発生する可能性があります。
    表 : 19. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService ネットワークサービスを要求する機能サービス。
    表 : 20. 返される内容
    タイプ Description (説明)
    ネットワークサービス 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. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService 設定を要求する機能サービス。
    表 : 22. 返される内容
    タイプ Description (説明)
    AnyPublisher<Settings、SettingsError> 成功: 設定 - 指定された機能サービスの SDK 設定のアレイ。

    失敗:SettingsError - 関連するエラーのタイプと説明。

    可能な値:
    • フェッチエラー
    • fetchFailed
    • 無効な JSON
    • invalidProvider
    • 未承認
    • ライセンスされていない sdk
    • 設定NotFound
    • 不明

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

    NowCoreService - requestSettings(for service: NowService) async throws

    指定された機能サービスの SDK 設定を返します。

    表 : 23. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService 設定を要求する機能サービス。
    表 : 24. 返される内容
    タイプ Description (説明)
    設定 メソッドが成功したときに返されます。指定された機能サービスの SDK 設定のアレイ。
    設定エラー メソッドが失敗したときにスローされます。関連するエラーのタイプと説明。
    可能な値:
    • フェッチエラー
    • fetchFailed
    • 無効な JSON
    • invalidProvider
    • 未承認
    • ライセンスされていない sdk
    • 設定NotFound
    • 不明

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

    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. パラメーター
    名前 タイプ Description (説明)
    サービス用 NowService プロトコル - iOS 公開者サブスクリプションを要求するフィーチャ サービス。
    表 : 26. 返される内容
    タイプ Description (説明)
    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)