---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NowPushService クラス: Android

# NowPushService クラス: Android {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：5分

NowPushService クラスは、プッシュ通知サービスとの対話を可能にする関数を提供します。
{#NowPushServiceAndroidAPI__table_vx2_klw_5pb__entry__2}

| 名前 | Description (説明) |
|-|-|
| 構成 | サービスに関連付けるサービス構成。 データ型: [NowServiceConfiguration](https://servicenow-prod.fluidtopics.net/xUPU640R0L1uwngzAjrqkw "NowServiceConfiguration クラスを使用すると、フィーチャ サービスのServiceNowインスタンス URL とパッケージ名を構成できます。") |
[表 : 1. プロパティ]

{#NowPushServiceAndroidAPI__table_vx2_klw_5pb}

## NowPushService - handlePush(remoteMessage: RemoteMessage, successCallback: Consumer\<NowPushPayload\>, errorCallback: Consumer\<Throwable\>) {#ariaid-title2}

プッシュ通知要求を処理します。
注:  
現在、実装されているプッシュ通知の種類は `NowPushVirtualAgent のみです`。その他の渡されたプッシュ通知の種類は、 [NotSupportedPushError](https://servicenow-prod.fluidtopics.net/0SWDfBwP95jAG7rK7Mij2w#NotSupportedPushErrorAndroidAPI "NotSupportedPushError クラスの関数は、NowPushSDK がプッシュ通知要求を処理できない場合にスローされます。このタイプのエラーがスローされた場合は、MobileSDK フレームワークの外部でプッシュ通知を解析して処理する必要があります。") オブジェクトを返します。
{#NPushServ-handlePush_S_O_O__table_aly_nvk_nrb__entry__3}

| 名前 | タイプ | Description (説明) |
|-|-|-|
| リモートメッセージ | [リモートメッセージ](https://firebase.google.com/docs/reference/android/com/google/firebase/messaging/RemoteMessage) | `com.google.firebase.messaging.FirebaseMessagingService.onMessageReceived` が受信した通知。詳しくは、 [Android アプリでメッセージを受信する](https://firebase.google.com/docs/cloud-messaging/android/receive)をご覧ください。 |
| 正常終了 コールバック | [コンシューマー](https://developer.android.com/reference/kotlin/java/util/function/Consumer) \<[NowPushPayload](https://servicenow-prod.fluidtopics.net/N_bL4gVYXhBfpaY1Miy4Zw#NowPushPayloadAndroidInterface "NowPushPayload インターフェイスは、NowSDK が実装するプッシュ通知ペイロードを定義します。")\> | 処理された NowPushPayload を返すコールバック。 |
| エラーコールバック | [コンシューマー\<](https://developer.android.com/reference/kotlin/java/util/function/Consumer)[スロー可能](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/)\> | スローされたエラーを返すコールバック。エラー [NotSupportedPushError](https://servicenow-prod.fluidtopics.net/0SWDfBwP95jAG7rK7Mij2w#NotSupportedPushErrorAndroidAPI "NotSupportedPushError クラスの関数は、NowPushSDK がプッシュ通知要求を処理できない場合にスローされます。このタイプのエラーがスローされた場合は、MobileSDK フレームワークの外部でプッシュ通知を解析して処理する必要があります。") がスローされた場合、通知タイプはモバイル SDK でサポートされていないため、モバイル SDK フレームワークの外部で処理する必要があります。 |
[表 : 2. パラメーター]

{#NPushServ-handlePush_S_O_O__table_aly_nvk_nrb} {#NPushServ-handlePush_S_O_O__table_bly_nvk_nrb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 3. 返される内容]

{#NPushServ-handlePush_S_O_O__table_bly_nvk_nrb}  
この例では、 onMessageReceived() をオーバーライドし、 RemoteMessage を `NowPushService` に渡す方法を示します。`NowPushService` は通知の種類を認識すると、要求を処理し、アプリケーションが処理する通知オブジェクトを返します。それ以外の場合は、 [NotSupportedPushError](https://servicenow-prod.fluidtopics.net/0SWDfBwP95jAG7rK7Mij2w#NotSupportedPushErrorAndroidAPI "NotSupportedPushError クラスの関数は、NowPushSDK がプッシュ通知要求を処理できない場合にスローされます。このタイプのエラーがスローされた場合は、MobileSDK フレームワークの外部でプッシュ通知を解析して処理する必要があります。") をスローします。

    override fun onMessageReceived(remodeeMessage: RemoteMessage){
      pushService.handlePush(remoteMessage, { push ->
        when (push) {
          is NowPushVirtualAgent → handleVirtualAgentPush(push)
        }, { error ->
            Log.e(TAG, "Unknown push", error)
            handleAppPushNotification(remoteMessage)
        })
    }

## NowPushService - registerPushToken(pushToken: String, pushApp: String, successCallback: Runnable, errorCallback: Consumer\<Throwable\>) {#ariaid-title3}

現在のAndroidデバイスと指定されたアプリケーションのプッシュ通知を識別するために使用されるServiceNowインスタンスに一意のFirebaseトークンを登録します。
ServiceNow インスタンスが通知を生成し、デバイスがアプリケーションからの通知Android受信するには、このトークンを登録する必要があります。
{#NPushServ-registerPushToken_S_S_O_O__table_zhp_ccl_nrb__entry__3}

| 名前 | タイプ | Description (説明) |
|-|-|-|
| プッシュトークン | 文字列 | Firebase[com.google.firebase.messaging.FirebaseMessaging.getToken](https://firebase.google.com/docs/reference/js/v8/firebase.messaging.Messaging#gettoken) または [com.google.firebase.messaging.FirebaseMessagingService.onNewToken](https://firebase.google.com/docs/cloud-messaging/android/client) によって取得されたトークン。 |
| プッシュアプリ | 文字列 | 関連付けられた ServiceNow インスタンスのプッシュ アプリケーション テーブルで指定されているプッシュ アプリケーションの名前。 |
| 正常終了 コールバック | [実行可能ファイル](https://developer.android.com/reference/kotlin/java/lang/Runnable.html) | トークンの登録に成功したときに実行されるコールバック。 |
| errorCallback | [コンシューマー\<](https://developer.android.com/reference/kotlin/java/util/function/Consumer)[スロー可能](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/)\> | トークンの登録に失敗したときに実行されるコールバック。 |
[表 : 4. パラメーター]

{#NPushServ-registerPushToken_S_S_O_O__table_zhp_ccl_nrb} {#NPushServ-registerPushToken_S_S_O_O__table_a3p_ccl_nrb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 5. 返される内容]

{#NPushServ-registerPushToken_S_S_O_O__table_a3p_ccl_nrb}  
この例では、現在の Android デバイスとアプリケーション "PushAppName" のプッシュ トークンを登録します。

    FirebaseMessaging.getInstance().token.addOnCompleteListener { task ->
      val token = task.result

      if (!task.isSuccessful || token == null) {
        throw Exception("Unable to fetch token"))
      }

      pushService.registerPushToken(token, "PushAppName", {
        Log.v(TAG, "Successfully registered push token")
      }, { e ->
        Log.e(TAG, "Error registering push", e)
      })
    }

## NowPushService - unregisterPushToken(pushToken: String, pushApp: String, successCallback: Runnable, errorCallback: Consumer\<Throwable\>) {#ariaid-title4}

指定された Firebase プッシュトークンを、関連付けられた ServiceNow インスタンスに登録解除します。
{#NPushServ-unregPushToken_S_S_O_O__table_ywx_bgl_nrb__entry__3}

| 名前 | タイプ | Description (説明) |
|-|-|-|
| プッシュトークン | 文字列 | Firebase トークンで登録解除します。[com.google.firebase.messaging.FirebaseMessaging.getToken](https://firebase.google.com/docs/reference/js/v8/firebase.messaging.Messaging#gettoken) または [com.google.firebase.messaging.FirebaseMessagingService.onNewToken](https://firebase.google.com/docs/cloud-messaging/android/client) によって取得されます。 |
| プッシュアプリ | 文字列 | 登録解除するトークンに関連付けられているプッシュアプリケーションの名前。この情報は、関連付けられた ServiceNow インスタンスのプッシュ アプリケーション テーブルに格納されます。 |
| 正常終了 コールバック | [実行可能ファイル](https://developer.android.com/reference/kotlin/java/lang/Runnable.html) | トークンの登録解除に成功したときに実行されるコールバック。 |
| erro rCallback | [コンシューマー\<](https://developer.android.com/reference/kotlin/java/util/function/Consumer)[スロー可能](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/)\> | トークンの登録解除に失敗したときに実行されるコールバック。 |
[表 : 6. パラメーター]

{#NPushServ-unregPushToken_S_S_O_O__table_ywx_bgl_nrb} {#NPushServ-unregPushToken_S_S_O_O__table_zwx_bgl_nrb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 7. 返される内容]

{#NPushServ-unregPushToken_S_S_O_O__table_zwx_bgl_nrb}  
このコード例は、ユーザーがアプリケーションからログアウトしたときなどにプッシュトークンを登録解除する方法を示しています。

    pushService.unregisterPushtoken(token, "PushAppName", {
      Log.v(TAG, "Successfully unregistered push token")
    },  { e ->
      Log.e(TAG, "Error unregistering push", e)
    })


