NowCoreService クラス - iOS

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

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

    NowCoreService - accessTokenDidFail(サービス:NowService)

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

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

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

    失敗:AccessTokenProviderError

    可能な値:
    • userSessionError
    • アクセストークン回収失敗
    • hostReturnedNoTokens - ゲストユーザーを示します

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

    NowCoreService - accessTokenDidFail(サービス:NowService) 非同期がスローします

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

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

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

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

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

    NowCoreService - canRequestPermission(_ permission: DevicePermission)

    サービスがデバイスの権限を要求できるかどうかについて、ホストアプリケーションを照会します。

    この関数はアクセス許可を要求せず、デバイスのアクセス許可を照会できるかどうかのみを要求します。機能サービスは、この関数を呼び出して、目的のデバイス アクセス許可を要求できるかどうかを判別する必要があります。

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

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

    NowCoreService:isGuestUser(サービス:NowService) 非同期

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

    表 : 7. パラメーター
    名前 タイプ 説明
    サービス用 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. パラメーター
    名前 タイプ 説明
    サービス用 NowService 設定の更新を要求する NowChat や NowAnalytics などの機能サービス。
    表 : 12. 戻り値
    タイプ 説明
    AnyPublisher<Settings、SettingsError> 成功:更新された SDK 設定の辞書。機能サービスは、返されたデータを調べて、特定の機能に関連する設定を確認する必要があります。

    失敗:SettingsError:発生したエラーのタイプと説明。

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

    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) 非同期がスローします

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

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

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

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

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

    可能な値:
    • アクセストークン回収失敗
    • hostReturnedNoTokens - ゲストユーザーを示します
    • userSessionError

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

    NowCoreService - requestAccessToken(サービス:NowService) 非同期がスローします

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

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

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

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

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

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

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

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

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

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

    NowCoreService - requestSettings(サービス:NowService) 非同期がスロー

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

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

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

    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、なし> 成功:設定:指定された機能サービスの 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)