NowCoreService クラス - iOS

  • リリースバージョン: Washingtondc
  • 更新日 2024年02月01日
  • 読む13読むのに数分
  • クラスは、さまざまな SDK 機能サービスに基本的なサービスを提供します。このクラスは、NowSDK でのみインスタンス化する必要があります。

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

    NowCoreService - accessTokenDidFail(サービス: NowService)

    指定されたサービスのインスタンスへの ServiceNow API 要求を承認するために使用されるアクセストークンが無効になったことを 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) 非同期スロー

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

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

    表 : 3. パラメーター
    名前 タイプ 説明
    サービス用 ナウサービス アクセス トークンを要求するフィーチャ サービス。
    表 : 4. 返される内容
    タイプ 説明
    NowSDK.AccessToken メソッドが成功した場合に返されます。有効なアクセストークン。
    AccessTokenProviderError メソッドが失敗したときにスローされます。アクセストークンの取得中に発生したことを示します。
    可能な値:
    • userSessionError
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens - ゲストユーザーを示します

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

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

    NowCoreService - canRequestPermission(_ permission: DevicePermission)

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

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

    表 : 5. パラメーター
    名前 タイプ 説明
    権限 デバイス権限 要求の対象となるデバイス。
    可能な値 (大文字と小文字を区別):
    • カメラ
    • 場所
    • マイク
    • フォトライブラリー
    • speachRecognition
    表 : 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 - 発生したエラーのタイプと説明。

    可能な値:
    • フェッチエラー
    • フェッチ失敗
    • 無効な JSON
    • invalidProvider
    • 未許可
    • sdkNotLicensed
    • 設定が見つかりません
    • 不明

    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. パラメーター
    名前 タイプ 説明
    サービス用 ナウサービス 設定の更新を要求する NowChat や NowAnalytics などの機能サービス。
    表 : 14. 返される内容
    タイプ 説明
    設定 メソッドが成功した場合に返されます。更新された SDK 設定の辞書。フィーチャ サービスは、返されたデータを調べて、特定のフィーチャに関連する設定を確認する必要があります。
    設定エラー メソッドが失敗したときにスローされます。
    可能な値:
    • フェッチエラー
    • フェッチ失敗
    • 無効な JSON
    • invalidProvider
    • 未許可
    • sdkNotLicensed
    • 設定が見つかりません
    • 不明

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

    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&lt;NowSDK.AccessToken, AccessTokenProviderError> 成功:NowSDK.AccessToken:インスタンスに対して ServiceNow 行われた API 要求を承認するために使用するアクセストークン。

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

    可能な値:
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens - ゲストユーザーを示します
    • userSessionError

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

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

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

    表 : 17. パラメーター
    名前 タイプ 説明
    サービス用 ナウサービス アクセス トークンを要求するフィーチャ サービス。
    表 : 18. 返される内容
    タイプ 説明
    NowSDK.AccessToken メソッドが成功した場合に返されます。インスタンスに対して ServiceNow 行われた API 要求を許可するために使用するアクセストークン。
    AccessTokenProviderError メソッドが失敗したときにスローされます。アクセストークンの取得中に発生したことを示します。
    可能な値:
    • accessTokenRetrievalFailed
    • hostReturnedNoTokens - ゲストユーザーを示します
    • userSessionError

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

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

    NowCoreService - requestNetworkService(サービス: NowService)

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

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

    エラー:設定エラー - 関連するエラーのタイプと説明。

    可能な値:
    • フェッチエラー
    • フェッチ失敗
    • 無効な JSON
    • invalidProvider
    • 未許可
    • sdkNotLicensed
    • 設定が見つかりません
    • 不明

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

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

    指定したフィーチャ サービスの SDK 設定を返します。

    表 : 23. パラメーター
    名前 タイプ 説明
    サービス用 ナウサービス 設定を要求するフィーチャ サービス。
    表 : 24. 返される内容
    タイプ 説明
    設定 メソッドが成功した場合に返されます。指定したフィーチャ サービスの SDK 設定の配列。
    設定エラー メソッドが失敗したときにスローされます。関連するエラーのタイプと説明。
    可能な値:
    • フェッチエラー
    • フェッチ失敗
    • 無効な JSON
    • invalidProvider
    • 未許可
    • sdkNotLicensed
    • 設定が見つかりません
    • 不明

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

    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&lt;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)