プッシュAPIの作成

単一デバイスまたはデバイスリストに通知またはメッセージをプッシュします。 プッシュされるコンテンツは、JSONで表されるプッシュオブジェクトのみです。

これは最新バージョンのPush APIです。v4バージョンの改良点は以下の通りです:

  • アクセス認可にHTTP Basic認証を使用しています。これにより、curl、ブラウザプラグインなどの一般的なHTTPツールを使用してAPIリクエスト全体を完了できます。
  • プッシュコンテンツは完全にJSON形式です。

リクエストレート制限

サービスの安定性と公平性を確保するため、APIには呼び出し頻度の制限が設けられています。各AppKeyのQPS(毎秒クエリ数)制限は以下の通りです:

  • 標準制限:1秒あたり最大500リクエスト
  • 高度制限:有料プランのサブスクライバーで、有料AppKeyに更高のQPS制限が必要な場合は、営業チームに連絡してください:Sales@engagelab.com

リクエスト方法

POST

呼び出しアドレス

インターフェースサービスアドレスは、データセンターの選択したアクセスポイントと一対一に対応しています。アプリケーションサービスアクセスポイントに対応する呼び出しアドレスを選択してください。

現在、EngageLabは2つのデータセンターアクセスポイントをデプロイしてサポートしており、異なるサービスアクセスポイント間のデータは完全に分離されています。製品作成時に選択したデータセンターアクセスポイントに応じて、呼び出しアドレスを選択できます。

POST v4/push
              
              
POST v4/push

            
このコードブロックはフローティングウィンドウ内に表示されます

呼び出し検証

詳細については、認証方法のREST API概要の説明を参照してください。

リクエスト例

リクエストヘッダー

> POST /v4/push HTTP/1.1 > Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==
              
              > POST /v4/push HTTP/1.1
> Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==

            
このコードブロックはフローティングウィンドウ内に表示されます

リクエストボディ

{ "from": "push", "to": "all", "body": { "platform": "all", "notification": { "alert" :"Hello, Push!", "android": { "alert": "Hi, Push!", "title": "Send to Android", "builder_id": 1, "extras": { "newsid": 321 } }, "ios": { "alert": "Hi, MTPush!", "sound": "default", "badge": "+1", "extras": { "newsid": 321 } } }, "options": { "time_to_live": 60, "apns_production": false } }, "request_id": "12345678", "custom_args":{ "Engagelab": "push to you" } }' > POST /v4/push HTTP/1.1 > Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==
              
              {
    "from": "push",
    "to": "all",
    "body": {
        "platform": "all",
        "notification": {
            "alert" :"Hello, Push!",
            "android": {
                "alert": "Hi, Push!",
                "title": "Send to Android",
                "builder_id": 1,
                "extras": {
                    "newsid": 321
                }
            },
            "ios": {
                "alert": "Hi, MTPush!",
                "sound": "default",
                "badge": "+1",
                "extras": {
                    "newsid": 321
                }
            }
        },
        "options": {
            "time_to_live": 60,
            "apns_production": false
        }
    },
    "request_id": "12345678",
    "custom_args":{
             "Engagelab": "push to you"
    }
}'
> POST /v4/push HTTP/1.1
> Authorization: Basic Yzk2ZjQyZTBkMmU2NjJlNDVkMDM1YWIxOmRmNGQ1OWU4NGVhYzJmOWQ1M2IzNmYxMg==

            
このコードブロックはフローティングウィンドウ内に表示されます

リクエストパラメータ

プッシュのパラメータ構造は、次の表の詳細の通りです:

キーワード タイプ オプション 意味
from String オプション 現在のサービス送信者
to StringまたはJSONオブジェクト 必須フィールド 送信対象
body JSONオブジェクト 必須フィールド 送信リクエスト体
platform StringまたはJSON配列 必須フィールド プッシュプラットフォーム
notification JSONオブジェクト オプション
  • 通知コンテンツ本体で、クライアントにプッシュされるコンテンツです。
  • messageとはどちらか一方が存在する必要があり、両方を共存させることはできません。
  • message JSONオブジェクト オプション
  • メッセージコンテンツ本体で、クライアントにプッシュされるコンテンツです。
  • notificationとはどちらか一方が存在する必要があり、両方を共存させることはできません。
  • request_id String オプション 顧客定義のオプションフィールドで、顧客はどのリクエストの応答を返しているかを識別するために使用します。
    custom_args JSONオブジェクト オプション 顧客定義のオプションフィールドで、コールバック時に顧客に返されます。値には最大128文字が含まれます。

    from

    現在のサービス送信者、String型、オプションフィールド。

    リクエスト例

    { "from":"push" }
                  
                  {
        "from":"push"
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    to

    プッシュデバイスオブジェクトは、プッシュを送信できるデバイスのリストを示します。プッシュデバイスオブジェクトを確認するため、App Pushは、エイリアス、タグ、登録ID、サブグループ、ブロードキャストなどのさまざまな方法を提供しています。

    プッシュ対象

    ブロードキャスト以外に、機器を選択する方法はいくつかあります。以下の通りです:

    キーワード タイプ 意味 説明 注意事項
    all String ブロードキャスト送信 すべてのデバイスにプッシュ プッシュ対象は過去365日間アクティブだったデバイスです。
    tag JSON配列 タグ 配列。複数のタグ間の関係はORで、つまり結合を取ります。 タグを使用して大規模なデバイス属性、ユーザー属性サブグループを実行します。
  • 一度に最大20個までプッシュします。
  • 有効なタグ構成:文字(大文字と小文字を区別)、数字、アンダースコア、漢字。
  • 制限:各タグの長さは40バイトに制限されています。(長さを決定するにはUTF-8エンコーディングが必要です)
  • tag_and JSON配列 タグAND 配列。複数のタグはAND関係で、つまり交差を取ります。 タグとの区別に注意して、一度に最大20個までです。
    tag_not JSON配列 タグNOT 配列。複数のラベル間で、最初に複数のラベルの結合セットを取り、次にその結果の補集合を取ります。 一度に最大20個までプッシュします。
    alias JSON配列 エイリアス 配列。複数のエイリアスはOR関係で、つまり結合を取ります。 エイリアスでユーザーを識別します。
  • デバイスは1つのエイリアスにのみバインドできますが、複数のデバイスを同じエイリアスにバインドできます。
  • 一度に最大1000個までプッシュします。
  • 有効なエイリアス構成:文字(大文字と小文字を区別)、数字、アンダースコア、漢字。
  • 制限:各エイリアスの長さは40バイトに制限されています。(長さを決定するにはUTF-8エンコーディングが必要です)
  • registration_id JSON配列 登録ID 配列。複数の登録IDはOR関係で、つまり結合を取ります。 デバイス識別。一度に最大1000個までプッシュします。
    live_activity_id String リアルタイムアクティビティ識別子 iOS SDKのliveActivityIdの値に対応します。 リアルタイムアクティビティを更新する場合は必須です。

    配列内の複数の値間の暗黙的な関係はORで、つまり結合を取ります。ただし、tag_andは異なり、配列内の複数の値間の関係はANDで、つまり交差を取ります。

    tag_notは単独で使用することはできません。少なくとも他の5種類のうちの1つが必要です。値配列の長さが0の場合、そのタイプは存在しません。

    これらのタイプは共存できます。共存する場合の複数の多項式間の暗黙的な関係はANDで、つまり交差を取ります。例:

    "to" : {"tag" : [ "tag1", "tag2"], "tag_and" : ["tag3", "tag4"], "tag_not" : ["tag5", "tag6"] }

    最初に「tag」フィールドの結果を計算tag1またはtag2 = A

    次に「tag_and」フィールドの結果を計算tag3かつtag4 = B

    次に「tag_not」フィールドの結果を計算not (tag5またはtag6) = C

    「to」の最終結果はAかつBかつC です。


    • 全員にプッシュ(ブロードキャスト):
    { "to": "all", }
                  
                  {
      "to": "all",
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます
    • 複数のタグにプッシュ(いずれかのタグ内に該当する限り):深圳、広州、北京
    { "to":{ "tag":[ "Shenzhen", "Guangzhou", "Beijing" ] } }
                  
                  {
        "to":{
            "tag":[
                "Shenzhen",
                "Guangzhou",
                "Beijing"
            ]
        }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます
    • 複数のタグにプッシュ(複数のタグの範囲内に同時に存在する必要があります):深圳に在住し、「女性」
    { "to":{ "tag_and":[ "Shenzhen", "female" ] } }
                  
                  {
        "to":{
            "tag_and":[
                "Shenzhen",
                "female"
            ]
        }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます
    • 複数のエイリアスにプッシュ:
    { "to":{ "alias":[ "4314", "892", "4531" ] } }
                  
                  {
        "to":{
            "alias":[
                "4314",
                "892",
                "4531"
            ]
        }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます
    • 複数の登録IDにプッシュ:
    { "to": { "registration_id": [ "4312kjklfds2", "8914afd2", "45fdsa31" ] } }
                  
                  {
      "to": {
        "registration_id": [
          "4312kjklfds2",
          "8914afd2",
          "45fdsa31"
        ]
      }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます
    • 複数のタイプのプッシュ対象を同時に指定してプッシュ:深圳または広州に在住し、「女性」「会員」
    { "to":{ "tag":[ "Shenzhen", "Guangzhou" ], "tag_and":[ "female", "members" ] } }
                  
                  {
        "to":{
            "tag":[
                "Shenzhen",
                "Guangzhou"
            ],
            "tag_and":[
                "female",
                "members"
            ]
        }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます
    • ライブアクティビティメッセージをプッシュ
    { "to": { "live_activity_id": "LiveActivity-1" } }
                  
                    {
          "to": {
              "live_activity_id": "LiveActivity-1"
          }
      }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    Body

    送信リクエストボディ。サポートされているフィールドは以下の通りです:

    キーワード タイプ オプション 意味
    platform StringまたはJSON配列 必須 プッシュプラットフォーム
    notification JSONオブジェクト オプション
  • 通知コンテンツで、クライアントにプッシュされるコンテンツです。
  • messageとはどちらか一方が存在する必要があり、両方を共存させることはできません。
  • message JSONオブジェクト オプション
  • メッセージコンテンツで、クライアントにプッシュされるコンテンツです。
  • notificationとはどちらか一方が存在する必要があり、両方を共存させることはできません。
  • live_activity JSONオブジェクト オプション
  • ライブアクティビティメッセージコンテンツ本体で、クライアントにプッシュされるコンテンツです。
  • notificationまたはmessageと共存する必要があり、live_activityはnotificationまたはmessageと共存させることはできません。
  • options JSONオブジェクト オプション プッシュパラメータ

    Platform

    MTPushは現在、AndroidおよびiOSプラットフォームのプッシュをサポートしています。キーワードはそれぞれ「android」、「ios」です。

    対象プラットフォームがiOSの場合、optionsのapns_productionフィールドでプッシュ環境を設定する必要があります。trueは開発環境をプッシュすることを意味し、Falseは開発環境をプッシュすることを意味します。

    すべてのプラットフォームにプッシュ:

    { "platform" : "all" }
                  
                  { "platform" : "all" }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    特定のプッシュプラットフォームの指定:

    { "platform": [ "android", "ios" ] }
                  
                  {
      "platform": [
        "android",
        "ios"
      ]
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    Notification

    「Notification」オブジェクトは、プッシュのエンティティコンテンツオブジェクトの1つ(もう1つは「Message」)で、「Notification」としてクライアントにプッシュされます。

    キーワード タイプ オプション 意味 説明
    alert StringまたはJSONオブジェクト 必須フィールド 内容 プラットフォームの下にandroidまたはiosのalertを指定しない場合、ここのalertが使用されます。
    android JSONオブジェクト オプション androidプラットフォームプロパティ Androidプラットフォームプッシュパラメータについては、androidの説明を参照してください。
    ios JSONオブジェクト オプション iosプラットフォームプロパティ iosプラットフォームプッシュパラメータについては、iosの説明を参照してください。

    Alert

    この場所(notificationオブジェクトの直下)の「alert」プロパティはショートカット定義であり、プラットフォーム間でalertメッセージが同じ場合、プラットフォームの下でalertを定義しなくても、ここが優先されます。各プラットフォームに定義がある場合は、ここの定義を上書きします。

    { "notification" : { "alert" : "Hello, Push!" } }
                  
                  {
      "notification" : {
        "alert" : "Hello, Push!"
      }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    上で定義されたnotificationオブジェクトは、「platform」で指定された複数のプラットフォームにプッシュされ、すべて同じnotification alertメッセージを持ちます。

    Android

    Androidプラットフォームの通知は、MTPush SDKによって特定の通知バースタイルに従って表示されます。サポートされているフィールドは以下の通りです:

    キーワード データ型 オプション 意味 説明
    alert StringまたはJSONオブジェクト 必須 通知内容
  • 指定されている場合は、親レベルで設定されたalert情報を上書きします。
  • コンテンツは空の文字列にすることができ、通知バーに表示しないことを示します。
  • 各種プッシュチャネルによるこのフィールドの制限については、プッシュ制限を参照してください。
  • title String オプション 通知タイトル
  • 指定されている場合は、通知表示のアプリ名を置き換えます。
  • 各種プッシュチャネルによるこのフィールドの制限については、プッシュ制限を参照してください。
  • builder_id Int オプション 通知バースタイルID Android SDKはカスタム通知レイアウトを設定でき、このフィールドはどのスタイルを使用するかを指定します。
    channel_id String オプション Android通知チャネルID 最大1000バイト、Android 8.0から、通知チャネルを構成できます。このフィールドは、チャネルIDに基づいて通知バーの表示効果を指定します。
    priority Int オプション 通知バー表示優先度 デフォルトは0、範囲は-2~2です。
    category String オプション 通知バーエントリフィルタリングまたはソート これは完全にメーカーのcategoryに対する処理戦略に依存します。
    style Int オプション 通知バースタイルタイプ 通知バースタイルタイプを指定するために使用され、デフォルトは0です。
    big_text String オプション 大きなテキスト通知バースタイル
  • style = 1の場合に使用可能で、コンテンツは大きなテキストとして通知バーに表示されます。
  • API 16以上のROMでサポートされています。
  • inbox JSONObject オプション テキスト項目通知バースタイル
  • style = 2の場合に使用可能で、最大5項目をサポートし、それぞれの最大長は1024です。例:{"box0":"content1"}
  • API 16以上のROMでサポートされています。
  • big_pic_path String オプション 大きな画像通知バースタイル
  • style = 3の場合に使用可能で、現在JPEG(FCMチャネルのみ)、.BMP(FCMチャネルのみ).jpgおよび.png形式の画像をサポートしています。
  • ネットワーク画像URL、ローカル画像パス(SDカード上の相対パスを指定)をサポートしています。
  • API 16以上のROMでサポートされています。
  • 画像の最大サイズは1MBです。
  • extras JSONオブジェクト オプション 追加フィールド ビジネス用途のためにJSON形式でカスタムKey/Value情報を定義します。
    intent JSONオブジェクト オプション ナビゲーションのターゲットページを指定(推奨) intentフィールドを使用して、通知バーをクリックしたときのナビゲーション先のターゲットページを指定します。intentフィールドを入力することを推奨します。そうしないと、通知をクリックしてもナビゲーションアクションがない場合があります。このフィールドは3種類をサポートしています:
  • ターゲットページにナビゲート:intent:#Intent;action=action path;component= package name /full activity name;end
  • アプリのホームページに移動:intent:#Intent;action=android.intent.action.MAIN;end(固定アドレス)
  • ディープリンクアドレスにナビゲート:scheme://test?key1=val1&key2=val2
  • large_icon String オプション 大きな通知アイコン
  • アイコンサイズは300KBを超えてはなりません。
  • ネットワーク画像URL、ローカル画像パス(SDカード上の相対パスを指定)をサポートしています。
  • small_icon String オプション 小さな通知アイコン
  • 通知の小さなアイコン、アイコンパスはネットワーク画像URLにすることができ、サイズは300KBを超えてはなりません。
  • small_icon_uriが入力されていない場合は、このsmall_iconフィールドがデフォルトで使用されます。
  • sound String オプション サウンド
  • Androidプロジェクトの/res/raw/パスにあるサウンドファイルの名前を、ファイル名の拡張子なしで入力します。
  • 注意: Android 8.0以上の場合、channel_idが渡されているときはこの属性は機能しません。
  • badge_add_num Int オプション バッジ番号の増分値を設定、元のバッジ番号に追加する
  • このプロパティは現在、Huawei EMUI 8.0以上、Xiaomi MIUI 6以上、およびメーカーのチャネルを使用しているvivoデバイスでのみ機能します。
  • このフィールドが入力されていない場合、バッジ番号は変更されないことを意味します(Xiaomiデバイスの場合、プッシュがEngagelabチャネルまたはメーカーのチャネルを通過するかどうかに関係なく、デフォルトで+1になります)。
  • 値の範囲:1-99。この範囲内の値が設定されている場合、次の通知バーメッセージ構成のbadge_add_numデータが元のバッジ番号に追加されます。1に設定することを推奨します。
  • 例:badge_add_numが1に設定され、元のバッジ番号が2の場合、このバッジメッセージを送信した後、アプリケーションのバッジ番号は3として表示されます。
  • badge_class String オプション デスクトップアイコンに対応するアプリケーションエントリアクティビティクラス、例:「com.test.badge.MainActivity」
  • Huaweiチャネルプッシュにのみ有効です。この値に非メインActivityクラスを入力すると、メーカーの制限ロジックが適用されます。
  • バッジ増分機能を実装するには、badge_add_numを組み合わせて使用する必要があります。両方が共存している必要があり、どちらかが欠けていても許可されません。
  • display_foreground String オプション アプリがフォアグラウンドにある場合、通知を表示するかどうか
  • 値が「1」の場合、アプリがフォアグラウンドにあるときに通知が通知バーにポップアップ表示されます。
  • 値が「0」の場合、アプリがフォアグラウンドにあるときに通知が通知バーにポップアップ表示されません。
  • 注意:デフォルトでは、アプリがフォアグラウンドにあるときに通知が通知バーにポップアップ表示されます。MTPush Android SDKバージョン4.3.1以降でサポートされています。
  • group_id String オプション メッセージグループID メッセージグループ化の一意の識別子で、メッセージの折りたたみ効果を制御するために使用されます。MTPush Android SDKバージョン5.0.1以降でサポートされています。
    { "notification": { "android": { "alert": "hello, MTPush!", "title": "Push test", "builder_id": 3, "style": 1, "big_text": "big text content", "inbox":JSONObject, "big_pic_path": "picture url", "priority": 0, "category": "category str", "large_icon": "http://pushapi-sgp.engagelab.comlargeIcon.jpg", "small_icon": "http://www.small.com/small_icon.jpg", "intent": { "url": "intent:#Intent;component=push.pushapi-sgp.engagelab.com/com.example.mtpushdemo.SettingActivity;end" }, "extras": { "news_id": 134, "my_key": "a value" } } } }
                  
                  {
        "notification": {
            "android": {
                "alert": "hello, MTPush!",
                "title": "Push test",
                "builder_id": 3,
                "style": 1,
                "big_text": "big text content",
                "inbox":JSONObject,
                "big_pic_path": "picture url",
                "priority": 0,
                "category": "category str",
                "large_icon": "http://pushapi-sgp.engagelab.comlargeIcon.jpg",
                "small_icon": "http://www.small.com/small_icon.jpg",
                "intent": {
                    "url": "intent:#Intent;component=push.pushapi-sgp.engagelab.com/com.example.mtpushdemo.SettingActivity;end"
                },
                "extras": {
                    "news_id": 134,
                    "my_key": "a value"
                }
            }
        }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    iOS

    iOSプラットフォームのAPNs通知。

    通知コンテンツはMTPushエージェントによってApple APNsサーバーに送信され、iOSデバイスにシステム通知として表示されます。

    通知コンテンツはAPNs仕様を満たしており、以下のフィールドをサポートしています:

    キーワード タイプ オプション 意味 説明
    alert StringまたはJSONオブジェクト 必須フィールド 通知内容
  • ここで指定されたコンテンツは、親によって指定されたalertメッセージを上書きします。
  • コンテンツが空の場合、通知バーに表示されません。
  • 文字列形式だけでなく、公式に定義されたalertペイロード
  • 構造もサポートしており、titleやsubtitleなどの公式にサポートされているキーが含まれています。
  • sound StringまたはJSONオブジェクト オプション 通知サウンド
  • 一般的な通知:文字列型。
  • このフィールドが存在しない場合、このメッセージに可聴アラートはありません。
  • このフィールドが存在する場合、指定されたサウンドが見つかると再生され、それ以外の場合はデフォルトのサウンドが再生されます。
  • このフィールドが空の文字列の場合、iOS 7はデフォルトのサウンドですが、iOS 8以降はサウンドがありません。
  • アラート通知:JSONオブジェクトで、critical、name、volumeなどの公式に定義されたペイロード構造をサポートしています。
  • badge IntまたはString オプション アプリケーションの角マーカー
  • Nの値はN、+N、または-Nに設定でき、Nの値の範囲は[0,99]です。アップロードされた角の値が10の場合、角はN、10+N、10-Nに設定されることを意味します(値が0未満の場合、デフォルトで角がクリアされます)。
  • 0または空の文字列の場合、角をクリアすることを意味します。
  • 入力されていない場合、角の数は変更されないことを意味します。
  • MTPush公式APIライブラリ(SDK)は、デフォルトでバッジ値を「+1」に設定します。
  • content-available Boolean オプション プッシュでウェイクアップ 詳細については、以下を参照してください:プッシュ時に「content-available」:trueは、Background Remote Notificationであることを意味します。そうでない場合は、通常のRemote Notificationです:Background Remote Notification
    mutable-content Boolean オプション 通知拡張 iOS 10に追加されたNotification Service Extension機能は、各APNsメッセージの配信状況を報告するためのものです。この機能を使用するには、クライアントがService Extensionインターフェースを実装する必要があり、サーバー側でmutable-contentフィールドを使用して設定を完了する必要があります。
  • true:iOS 10のUNNotificationServiceExtension機能をサポートすることを示します。
  • このフィールドが含まれていない場合、通常のRemote Notificationであり、到着データをカウントできません。
  • category String オプション iOS 8でのみサポートされています。APNsペイロードの「category」フィールドの値を設定します。
    extras JSONオブジェクト オプション 拡張フィールド ここでKey/value情報はビジネス用途のためにカスタマイズされています。
    thread-id String オプション 通知グループ iOSリモート通知はこのプロパティによってグループ化されるため、同じthread-idの通知はグループ化されます。
    interruption-level String オプション 優先度と配信時間の中断レベルの通知 iOS 15の場合、通知レベルはactive、critical、passive、timeSensitiveのいずれかにする必要があります。UNNotificationInterruptionLevelを参照してください。

    MTPushのiOS通知はAPNsサーバーに転送されます。 MTPushの通知長は4000バイトに制限されています。 MTPushはプッシュ時にutf-8エンコーディングを使用するため、1つの漢字は長さが3バイトを占めます。

    サーバー側の配信例:

    { "notification": { "ios": { "alert": "hello, Push!", "sound": "sound.caf", "badge": 1, "extras": { "news_id": 134, "my_key": "a value" } } } }
                  
                  {
        "notification": {
            "ios": {
                "alert": "hello, Push!",
                "sound": "sound.caf",
                "badge": 1,
                "extras": {
                    "news_id": 134,
                    "my_key": "a value"
                }
            }
        }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    クライアントが受信したメッセージ:

    { "_j_msgid" = 813843507; aps = { alert = "hello,Push!"; badge = 1; sound = "sound.caf"; }; "my_key" = "a value"; "news_id" = 134; }
                  
                  {
      "_j_msgid" = 813843507;
      aps =     {
      alert = "hello,Push!";
      badge = 1;
      sound = "sound.caf";
    };
    "my_key" = "a value";
    "news_id" = 134;
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    Message

    アプリ内メッセージ。カスタムメッセージ、パススルーメッセージとも呼ばれます。

    • この部分は通知バーに表示されず、MTPush SDKがメッセージコンテンツを受信してAppに渡します。
    • iOSは、アプリがフォアグラウンドにある状態で、プッシュインアプリメッセージチャネル(APNSではない)でこの部分を取得します。

    サポートされているフィールドは以下の通りです:

    キーワード タイプ オプション 意味
    msg_content StringまたはJSONオブジェクト 必須フィールド メッセージ内容
    title String オプション メッセージタイトル
    content_type String オプション メッセージコンテンツタイプ
    extras JSONオブジェクト オプション JSON形式のオプションパラメータ

    例:

    { "message": { "msg_content": "Hi,Push", "content_type": "text", "title": "msg", "extras": { "key": "value" } } }
                  
                  {
      "message": {
        "msg_content": "Hi,Push",
        "content_type": "text",
        "title": "msg",
        "extras": {
          "key": "value"
        }
      }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    Live_activity

    注意:リアルタイムアクティビティメッセージにはiOS P8証明書の使用が必要で、WebPortalのiOS認証方法設定で「トークン認証設定」を選択することに対応します。

    リアルタイムアクティビティメッセージコンテンツ本体には以下のフィールド情報が含まれています:

    キーワード タイプ オプション 説明
    ios JSONオブジェクト 必須 詳細なフィールドについては、セクションiOS JSONオブジェクトを参照してください。

    iOS JSONオブジェクト

    キーワード タイプ オプション 説明
    event string 必須 作成:「start」、更新:「update」、終了:「end」;event=startの場合に必須
    attributes-type string オプション リアルタイムアクティビティタイプ、開発者によって定義された値;event=startの場合に必須
    content-state JSONオブジェクト 必須 リアルタイムアクティビティ動的コンテンツ、クライアントSDK値と一致する必要があります(Appleのcontent-stateフィールドに対応)。
    alert JSONオブジェクト オプション 詳細については、セクションiOS alert JSONオブジェクトを参照してください。
    dismissal-date int オプション リアルタイムアクティビティの終了の表示時間。
    attributes JSONオブジェクト オプション リアルタイムアクティビティ静的コンテンツ、クライアントSDK値と一致する必要があります(Appleのattributesフィールドに対応)。
    stale-date int オプション リアルタイムアクティビティの表示の有効期限;現在の時間より少ない場合、アクティビティは更新されません。
    relevance-score int オプション インテリジェンスアイランドでのリアルタイムアクティビティの表示の優先度、値は1~100、アクティビティの重要性と正の相関があります;指定されていない場合はデフォルトで最高です。
    apns-priority int オプション 5または10、デフォルトは10;apns-priority=5の通知はAppleのレート制限を消費せず、制限を超えると通知が制限されます。

    iOS alert JSONオブジェクト

    キーワード タイプ オプション 説明
    title string オプション Apple Watchメッセージに表示されるタイトル。
    body string オプション Apple Watchメッセージに表示される内容。
    sound string オプション 通知サウンド。
    • Engagelab PushのiOSリアルタイムアクティビティメッセージはAppleサーバーに転送されます。Appleは、リアルタイムアクティビティメッセージ(ActivityKit)の動的更新データが4096バイトを超えないように要求しています。
    • Engagelab Pushは、リパッケージ要件とセキュリティ冗長性を考慮して、「iOS」内の「live_activity」パラメータ内の総長と波括弧内の内容が3584バイトを超えないように規定しています。JPushはUTF-8エンコーディングを使用しているため、1つの漢字は3バイトを占めます。

    リアルタイムアクティビティプッシュ例

    リアルタイムアクティビティに使用されるattributes-typeとlive_activity_idは開発者SDKから報告されます。リアルタイムアクティビティを使用する前に、デバイスのプッシュ開始トークンと更新トークンを報告する必要があります。詳細な手順については、Appleメーカーのリアルタイムアクティビティの説明を参照してください。

    • 作成

      { "from": "push", "to": { "registration_id": [ "161a3797c816b134042" ] }, "body": { "platform": "ios", "live_activity": { "ios": { "event": "start", "content-state": { "eventStr": "hello", "eventTime":1685952000 }, "attributes": { "name": "1", "number": 2, "tag": "mytag" }, "alert": { "title": "hello", "body": "welcome" }, "attributes-type": "my_la_type", "relevance-score": 100, "apns-priority": 100 } } }, "request_id": "12345678", "custom_args": "12345678" }
                    
                    {
          "from": "push",
         "to": {
              "registration_id": [
                  "161a3797c816b134042"
              ]
          },
          "body": {
              "platform": "ios",
              "live_activity": {
                  "ios": {
                      "event": "start",
                      "content-state": {
                          "eventStr": "hello",
                          "eventTime":1685952000
                      },
                      "attributes": {
                          "name": "1",
                          "number": 2,
                          "tag": "mytag"
                      },
                      "alert": {
                          "title": "hello",
                          "body": "welcome"
                      },
                      "attributes-type": "my_la_type",
                      "relevance-score": 100,
                      "apns-priority": 100
                  }
              }
          },
          "request_id": "12345678",
          "custom_args": "12345678"
      }
      
                  
      このコードブロックはフローティングウィンドウ内に表示されます
    • 更新

      { "from": "push", "to": { "live_activity_id": "my_la_id" }, "body": { "platform": "ios", "live_activity": { "ios": { "event": "update", "content-state": { "eventStr": "test_live", "eventTime": 198 }, "alert": { "title": "123411", "body": "123411" } } } }, "request_id": "12345678", "custom_args": "12345678" }
                    
                    {
         "from": "push",
         "to": {
               "live_activity_id": "my_la_id"
          },
          "body": {
              "platform": "ios",
              "live_activity": {
                  "ios": {
                      "event": "update",
                      "content-state": {
                          "eventStr": "test_live",
                          "eventTime": 198
                      },
      
                      "alert": {
                          "title": "123411",
                          "body": "123411"
                      }
                  }
              }
          },
          "request_id": "12345678",
          "custom_args": "12345678"
      }
      
                  
      このコードブロックはフローティングウィンドウ内に表示されます

    Voip

    iOS VOIP機能。このタイプは他のiOSメッセージタイプとの共存をサポートしていません。リクエストパラメータ構造を参照してください:

    { "from": "push", "to": { "registration_id": [ "1a0018970a91da03de5" ] }, "request_id": "12345", "custom_args": "12345", "body": { "platform": "ios", "voip": { "key": "value // APPに渡される任意のカスタムキー/値のペア" } } }
                  
                  { 
        "from": "push", 
        "to": { 
            "registration_id": [ "1a0018970a91da03de5" ] 
        }, 
        "request_id": "12345", 
        "custom_args": "12345", 
        "body": { 
            "platform": "ios", 
            "voip": { 
                "key": "value // APPに渡される任意のカスタムキー/値のペア" 
            } 
        } 
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    Options

    現在のプッシュ通知オプションには以下が含まれます:

    キーワード タイプ オプション 意味 説明
    time_to_live IntまたはString オプション オフラインメッセージ保持時間(秒) プッシュ時にユーザーがオフラインの場合、メッセージは指定された期間保持され、オンラインになったときに再びプッシュされます。デフォルトは86400(1日)、最大は15日です。キャリアがサポートする最大値が設定値より小さい場合は、キャリアの最大値が使用されます。0に設定すると、オフラインメッセージは保持されません。プッシュ時にオンラインのユーザーのみがメッセージを受信します。
    override_msg_id Long オプション オーバーライドするメッセージID 現在のプッシュが以前のプッシュをオーバーライドする場合は、以前のプッシュのmsg_idを入力すると、オーバーライドの効果が得られます。この場合、msg_idはオフラインで更新されたコンテンツを受信します。Androidユーザーがすでにメッセージを受信していて、通知が通知バーからクリアされていない場合でも、新しいコンテンツが以前の通知を上書きします。オーバーライド機能は1日間有効です。オーバーライドの指定時間内にmsg_idが存在しない場合、7006エラーが返され、無効なメッセージオーバーライド操作を示し、現在のメッセージはプッシュされません。このフィールドはAndroidにのみ有効で、Engagelabチャネル、Xiaomiチャネル、Meizuチャネル、OPPOチャネル、FCMチャネル、Huaweiチャネル(EMUI10以上のデバイス)のみをサポートしています。
    apns_production Boolean オプション APNs本番環境 このフィールドはiOS Notificationsにのみ有効です。
  • true:本番環境にプッシュする;
  • false:開発環境にプッシュする。
  • デフォルト値ルール:構成で「開発用証明書」が有効になっている場合、このフィールドは明示的に設定されていないときにデフォルトでfalseになります。それ以外の場合、省略されているときにデフォルトでtrueになります。強く推奨 プッシュリクエストでこのフィールドの値を明示的に指定する。
  • apns_collapse_id String オプション iOS通知を更新する識別子 新しいAPNs通知がNotification Centerの既存の通知と同じapns-collapse-idに一致する場合、新しい通知コンテンツがそれを更新し、Notification Centerの先頭に配置されます。コラプスIDの長さは64バイトを超えてはなりません。
    big_push_duration Int オプション ペースドプッシュの期間(分) スロープッシュとも呼ばれ、元の高速プッシュ速度を低下させ、指定されたn分間にわたってターゲットユーザーにプッシュを均等に配布します。最大は1440です。
    multi_language jsonオブジェクト オプション 多言語プッシュ設定 多言語プッシュコンテンツの適応設定については、詳細についてはmulti_languageを参照してください。
    third_party_channel JSONオブジェクト オプション Androidメーカーチャネル構成情報 メーカーチャネルを構成したユーザーにのみ有効なパラメータについては、詳細についてはthird_party_channelを参照してください。
    classification Int オプション プッシュメッセージ分類設定 EngageLabは指定されたメッセージタイプを判断または較正しません。指定されていない場合は、デフォルトで0になります。0:運用メッセージを表します。1:システムメッセージを表します。
    voice_value String オプション 音声ファイル値 複数のパラメータはコンマで区切られ、「#」は解析が必要であることを示します。それ以外の場合は、デフォルトで言語ファイルと直接一致します。数値に小数点が含まれている場合、アップロードされたファイル名はpoint.mp3でなければならないことに注意してください。現在サポートされている言語は「en」(英語)、「zh-Hans」(簡体字中国語)、「zh-Hant」(繁体字中国語)です。プッシュコンテンツの指定された言語が対応する言語ルールと一致しない場合、プッシュコンテンツは音声ブロードキャストに変換されません。
    enhanc_message Bool オプション アプリ内メッセージ表示を有効にする true - 強化を有効にする;false - 強化を無効にする。通知権限が無効になっている場合、この機能を有効にすると、ユーザーがアプリをフォアグラウンドで実行しているときに通知バーメッセージコンテンツがアプリ内メッセージとして表示されます。この機能のデフォルト値はfalseで、明示的に有効にした場合にのみアクティブになります。
    plan_id String オプション プッシュプラン識別子 まずプラン識別を作成する必要があります。コンソールまたはAPIを通じて作成できます。
    cid String オプション プッシュリクエスト識別子、重複プッシュを防ぐために使用 文字、数字、アンダースコア、マイナス記号のみが許可され、長さは64文字を超えません。このフィールドは同じAppKeyの下で一意でなければならないことに注意してください。重複プッシュを回避する方法

    Multi_language

    このフィールドは、EngageLab Pushサービスの多言語プッシュ機能

    能に使用されます。さまざまな言語のユーザーにカスタマイズされた通知コンテンツを送信できます。プッシュリクエストで複数の言語とそれに対応するメッセージコンテンツ、タイトル、iOSサブタイトルを指定することで、ユーザーの言語設定に基づいて適切なプッシュ通知を送信できます。

    リクエストパラメータ
    キーワード タイプ オプション 意味 説明
    en string オプション 言語キー ユーザーの言語に対応、キーコードについては付録を参照。
    content string オプション メッセージコンテンツ ユーザーの言語に基づいて、notification.android.alert、notification.ios.alert、notification.web.alert、message.msg_contentのデータを置き換えます。
    title string オプション メッセージタイトル ユーザーの言語に基づいて、notification.android.title、notification.ios.alert、notification.web.title、message.titleのデータを置き換えます。
    ios_subtitle string オプション iOSサブタイトル ユーザーの言語に基づいて、notification.ios.alertのデータを置き換えます。
    リクエスト例
    HTTPリクエスト方法: POST リクエストURL: /v4/grouppushまたは/v4/push リクエストデータ形式: JSON リクエスト例: { "options": { "multi_language": { "en": { "content": "", "title": "", "ios_subtitle": "" } } } }
                  
                     HTTPリクエスト方法: POST
       リクエストURL: /v4/grouppushまたは/v4/push
       リクエストデータ形式: JSON
       リクエスト例:
       {
        "options": {
          "multi_language": {
            "en": {
              "content": "",
              "title": "",
              "ios_subtitle": ""
            }
          }
        }
       }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます
    リクエスト例
    成功レスポンス: { }
                  
                  成功レスポンス:
    {
       
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます
    失敗レスポンス: { "code": 400, "data": "", "message": "エラーメッセージ" }
                  
                  
    失敗レスポンス:
    {   
        "code": 400,  
        "data": "",
      "message": "エラーメッセージ"
    }   
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    Third_party_channel

    このフィールドはAndroidベンダーチャネルの個別情報を入力するために使用され、キーは7つのAndroidベンダーチャネル(xiaomi、huawei、meizu、oppo、vivo、fcm、honor)のみをサポートしており、そのうちの1つまたは複数を同時に存在させることができます。各ベンダータイプのKEYには現在以下のオプションを含めることができます:

    リクエストパラメータ
    キーワード タイプ オプション 意味 説明
    distribution_new String 必須オプション _ Engagelabとベンダーチャネルが共存する場合、ダウンリンクの優先度を設定します。
  • mtpush: プッシュを強制的にEngagelabチャネルを通じてダウンロードすることを示します。
  • pns_mtpush: fcm+国内メーカーの組み合わせタイプのユーザーに対して、プッシュを強制的にXiaomi/Huawei/Meizu/oppo/Vivo/Gloryチャネルを優先的に通じて、無効な場合はengagelabチャネルを通じてダウンロードすることを示します。
  • mtpush_pns: fcm+国内ベンダーの組み合わせタイプのユーザーに対して、プッシュは優先的にengagelabを通じて、engagelabがオンラインでない場合はベンダーチャネルを通じてダウンロードすることを示し、ベンダーは二次的なものとして機能します。
  • fcm_mtpush: fcm+国内ベンダーの組み合わせタイプのユーザーに対して、プッシュを強制的にfcmチャネルを優先的に通じて、無効な場合はengagelabチャネルを通じてダウンロードすることを示します。
  • mtpush_fcm: fcm+国内ベンダーの組み合わせタイプのユーザーに対して、プッシュは優先的にengagelabを通じて、engagelabがオンラインでない場合はfcmチャネルを通じてダウンロードすることを示し、fcmは二次的なものとして機能します。``_注:pns_mtpush/fcm_mtpush/mtpush_pns/mtpush_fcmの4つの戦略について、デバイスに1つのみの利用可能なシステムプッシュチャネル(FCMまたは携帯電話メーカーのチャネルのいずれか)がある場合、指定されたFCMおよびメーカーチャネルの戦略は無視され、正常に統合されたシステムチャネルが使用されます。
  • channel_id String オプション 通知バーメッセージカテゴリ
  • Xiaomi、Huawei、OPPOデバイスの通知分類に適応するために、開発者は各メーカーに申請する必要があります。具体的な申請ガイドについては、メーカー通知分類ガイドを参照してください。
  • 注:中国地域でデータが処理されているHuaweiのアプリケーションはこのフィールドをサポートしていません。詳細については、Huaweiカスタム通知チャネルを参照してください。
  • channel_idフィールドはAndroidでも使用できます。このフィールドに値が入力されている場合は、これが優先されます。それ以外の場合は、android.channel_idの定義が適用されます。
  • 重要:OPPOは2024年11月20日から新しい通知分類ルールを実施するため、このフィールドに加えて、以下のcategoryおよびnotify_levelフィールドを入力することを推奨します。
  • classification Int オプション 通知バーメッセージカテゴリ vivo携帯電話メーカーの通知バーメッセージカテゴリで、入力されていない場合はデフォルトで0です。
  • 0: 運用メッセージを表します。
  • 1: システムメッセージを表します。``現在、vivoはシステムメッセージの分類が比較的厳しく、具体的なルールについてはvivo開発者プラットフォームを参照してください。
  • pushMode Int オプション vivoプッシュモード デフォルトは0です。詳細についてはvivo pushModeを参照してください。テストプッシュを使用するには、vivoバックエンドで手動でテストデバイスのIDを構成する必要があります。
  • 0: 公式プッシュを示します。
  • 1:テストプッシュを示します。
  • importance String オプション Huawei/Glory通知バーメッセージインテリジェント分類 Huawei携帯電話メーカーの通知バーメッセージインテリジェント分類に適応するため、Huaweiのimportanceフィールドに対応し、入力されていない場合はデフォルトで「NORMAL」です。参照:Huawei通知メッセージインテリジェント分類
  • LOW: 一般的なメッセージ。
  • NORMAL: 重要なメッセージ。
  • HIGH: 非常に重要なメッセージ(Huaweiのみサポート)
  • urgency String オプション Huaweiベンダー定義のメッセージ優先度 Huawei携帯電話ベンダーのカスタムメッセージの優先度に適応するため。
  • HIGH: 非常に重要なメッセージで、HIGHレベルのメッセージはユーザーの携帯電話に到着したときにアプリケーションプロセスを強制的に起動することができます。
  • NORMAL: 重要なメッセージ。``「HIGH」を設定するには、Huaweiから特別な権限を申請する必要があります。参照:特別な権限を申請する方法
  • category String オプション Huaweiベンダーカスタムメッセージシナリオロゴ Huawei、vivo、OPPOデバイスの通知要件に適応するため、このフィールドは「クラウド通知」メッセージタイプを識別し、通知アラート方法を決定し、特定のタイプのメッセージの配信を加速するために使用されます。
  • 対応する値と説明については、以下を参照してください:Huawei category値の説明vivo分類基準
  • OPPO category値の説明
  • 注1:Huaweiはカスタム分類権限の申請を完了する必要があります。
  • 注2:2023年9月15日から、HuaweiはHuawei通知分類基準の下でクラウド通知とローカル通知を共同で管理するようになります。Jiguangサービスを介してプッシュ通知を開始する場合は、このフィールドの値がHuaweiの公式"Huaweiクラウド通知カテゴリ"の値の要件を満たしていることを確認してください。
  • 注3:vivoの特定のルールについては、vivo公式ドキュメントを参照してください。
  • 注4:OPPOは2024年11月20日から新しい通知分類ルールを実施します。詳細については、OPPO公式ドキュメントを参照してください。
  • notify_level Int オプション OPPO通知バーメッセージアラートレベル
  • 公式値:1は通知バー、2は通知バー+ロックスクリーン、16は通知バー+ロックスクリーン+バナー+振動+リングトーン。
  • notify_levelフィールドは「サービスと通信」メッセージにのみ適用されます。
  • notify_levelパラメータを使用する場合は、categoryパラメータを必ず含める必要があります。
  • small_icon_uri String オプション ベンダーメッセージの小さなアイコンスタイル 現在Xiaomi/Huaweiメーカーをサポートしています。
  • ベンダーフィールドを優先し、ベンダーフィールドが入力されていない場合は、android内のsmall_iconを使用します。
  • XiaomiはXiaomiメーカーの大きなアイコンID、Huaweiのmedia_idとベンダーローカルパスをサポートしています。(Xiaomiは公式にカスタム小さなアイコンをサポートしなくなり、開発者はXiaomiの小さなIcon関連機能を続けて使用しないことを推奨します)。
  • small_icon_color String オプション Xiaomiメーカーの小さなアイコンスタイルの色 Xiaomiメーカーのメッセージの小さなアイコンスタイルの色に適応するため、入力されていない場合はデフォルトで灰色です(Xiaomi公式の後続ではカスタム小さなアイコンをサポートしなくなり、開発者はXiaomiの小さなアイコン関連機能を続けて使用しないことを推奨します)。
    big_text String オプション ベンダーメッセージの大きなテキストスタイル
  • メーカーのメッセージの大きなテキストスタイルに適応するため、現在Huawei/Glory/Xiaomi/OPPOをサポートしており、Xiaomi OPPOは最大128文字をサポートしています。
  • ベンダーフィールドが入力されていない場合は、androidでbig_textフィールドが定義されています。
  • android内のフィールドstyle=1の場合に使用されます。
  • only_use_vendor_style Boolean オプション 独自のチャネル設定スタイルを使用するかどうか 独自のチャネルで設定されたスタイルのみを使用し、androidで設定されたスタイルを使用しないかどうか、デフォルトはfalseです。
  • true: 独自のチャネルで設定されたスタイルのみを使用します。
  • false: androidで設定されたスタイルを使用することができます。
  • マルチベンダーチャネル戦略を統一し、構成ロジックを簡素化するため、distribution_newフィールドの構成方法は以下のように調整されました。 従来のベンダーレベルの構成は引き続き有効ですが、将来の互換性リスクを回避するため、段階的にグローバル構成に移行することを推奨します。(新しいルールは2025.04.03から有効になります):

    • 構成優先度(新しいルール)
      • 第一優先: グローバル構成third_party_channel.distribution_new推奨される新しい方法
        例:"distribution_new": "pns_mtpush"
      • 第二優先: ベンダーレベルの構成third_party_channel.{vendor_key}.distribution_new(従来の互換方法)
        グローバル構成が設定されていない場合にのみ有効になります
      • 無構成: デフォルト戦略:pns_mtpush

    互換性に関する注意事項

    • 互換性保証:グローバルフィールドが設定されていない場合、従来のベンダーレベルの構成は依然として機能し、既存のサービスに影響を与えません。
    • 競合解決:グローバルフィールドとベンダーレベルのフィールドの両方が構成されている場合、グローバル値のみが読み取られ、ベンダーレベルの構成は無視されます。
    • 長期計画:ベンダーレベルのdistribution_newは将来のバージョンで廃止される可能性があります。可能であれば事前に適応するようにしてください。
    リクエスト例
    { "third_party_channel": { "distribution_new": "pns_mtpush", "xiaomi": { "channel_id": "*******", "small_icon_uri": "http://f6.market.xiaomi.com/download/MiPass/x/x.png", "small_icon_color": "#ABCDEF" }, "huawei": { "importance": "NORMAL", "small_icon_uri": "https://xx.com/xx.jpg", "only_use_vendor_style": true }, "oppo": { "channel_id": "*******", "large_icon": "3653918_5f92b5739ae676f5745bcbf4" }, "vivo": { "pushMode": 0 } } }
                  
                  {
        "third_party_channel": {
            "distribution_new": "pns_mtpush",
            "xiaomi": {
                "channel_id": "*******",
                "small_icon_uri": "http://f6.market.xiaomi.com/download/MiPass/x/x.png",
                "small_icon_color": "#ABCDEF"
            },
            "huawei": {
                "importance": "NORMAL",
                "small_icon_uri": "https://xx.com/xx.jpg",
                "only_use_vendor_style": true
            },
            "oppo": {
                "channel_id": "*******",
                "large_icon": "3653918_5f92b5739ae676f5745bcbf4"
            },
            "vivo": {
                "pushMode": 0
            }
        }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    Request_id

    リクエストIDは、顧客定義のオプションフィールドです。クライアントはどのリクエストの応答を返しているかを識別するために使用します。

    リクエスト例

    { "request_id":"12345678" }
                  
                  {
          "request_id":"12345678"
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    戻り例

    { "msg_id": "1225764", "request_id": "12345678" }
                  
                  {
        "msg_id": "1225764",
        "request_id": "12345678"
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    Custom_args

    顧客定義のオプションフィールドで、応答では返されず、コールバックで返されます。

    リクエスト例

    { "custom_args":{ "args1": "args1" } }
                  
                  {
      "custom_args":{
        "args1": "args1"
      }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    戻りパラメータ

    成功した戻り

    フィールド タイプ オプション 説明
    request_id String オプション リクエストで送信されたカスタムIDは、応答でそのまま返されます。
    message_id String 必須 メッセージIDで、メッセージを一意に識別します。
    < HTTP/1.1 200 OK < Content-Type: application/json {"request_id":"18","msg_id":"1828256757"}
                  
                  < HTTP/1.1 200 OK
    < Content-Type: application/json
    {"request_id":"18","msg_id":"1828256757"}
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    戻りに失敗

    httpステータスコードは4xxまたは5xxで、応答ボディには以下のフィールドが含まれています:

    フィールド タイプ オプション 説明
    code int 必須 エラーコード、エラーコード説明を参照
    message String 必須 エラー詳細
    { "error":{ "code": 3002, "message": "Push.template field must be set correctly when type is template" } }
                  
                  {
        "error":{
        "code": 3002,
        "message": "Push.template field must be set correctly when type is template"
        }
    }
    
                
    このコードブロックはフローティングウィンドウ内に表示されます

    呼び出し戻り

    HTTPステータスコード

    参照ドキュメント:HTTP-ステータスコード

    エラーコード

    コード 説明 詳細な説明 HTTPステータスコード
    グローバルエラーコード
    20101 無効なプッシュパラメータ 登録IDが無効であるか、現在のappkeyに属していません 400
    21001 HTTP Postメソッドのみをサポート Getメソッドをサポートしていません 405
    21002 必須パラメータが不足しています 修正する必要があります 400
    21003 無効なパラメータ値 修正する必要があります 400
    21004 検証に失敗しました 修正する必要があります、呼び出しの検証を参照してください 401
    21005 メッセージ本体が大きすぎます 修正する必要があります、Notification+Messageの長さ制限は2048バイトです 400
    21008 無効なapp_keyパラメータ 修正する必要があります、送信されたappkeyとアプリケーション情報を注意深く比較し、余分なスペースがないか確認してください 400
    21009 内部システムエラー サポートチームに連絡してください 400
    21011 適切なプッシュターゲットが見つかりません 'to'フィールドを確認してください 400
    21015 リクエストパラメータの検証に失敗しました 予期しないパラメータが存在します 400
    21016 リクエストパラメータの検証に失敗しました パラメータタイプまたはパラメータ長が制限を超えています 400
    21030 内部サービスのタイムアウト 後で再試行してください 503
    21050 無効なlive_activityイベントパラメータ イベントパラメータは「start」、「update」、または「end」でなければなりません 400
    21051 無効なlive_activityオーディエンスパラメータ リアルタイムアクティビティ作成中、プッシュターゲットはブロードキャストまたは登録ベースのみ可能です 400
    21052 無効なlive_activity attributes-typeパラメータ event=startの場合、attributes-typeは空にすることができません 400
    21053 無効なlive_activity content-stateパラメータ content-stateは空にすることができません 400
    21054 live_activityパラメータエラー、通知とカスタムメッセージは同時に許可されていません voip、message、notification、live_activityは共存できません 400
    21055 live_activity iosの非p8証明書 リアルタイムアクティビティはp8証明書のみをサポートしています 400
    21056 live_activityはiosプラットフォームのみをサポートしています platformパラメータはiosでなければなりません 400
    21057 voipメッセージは他のメッセージタイプと共存することはできません voip、message、notification、live_activityは共存できません 400
    21058 voipはiosプラットフォームのみをサポートしています platformパラメータはiosでなければなりません 400
    23006 パラメータエラー 固定レートプッシュbig_push_durationが最大値1440を超えています 400
    23008 インターフェースのレート制限 単一アプリケーションのプッシュインターフェースQPSが制限に達しました(500 qps) 400
    23009 プッシュ権限エラー 現在のプッシュIPアドレスがアプリケーションIPホワイトリストに含まれていません 400
    27000 内部メモリエラー 再試行してください 500
    27001 パラメータエラー 検証情報が空です 401
    27008 パラメータエラー third_party_channel内のdistributionが空ではないのに、notificationのalertコンテンツが空です 401
    27009 パラメータエラー third_party_channel内のdistributionの形式が無効または空です 401
    21038 プッシュ権限エラー VIPの有効期限が切れているか、アクティブ化されていません 401
    21306 パラメータエラー 通知メッセージとカスタムメッセージを同時にプッシュすることはできません 401
    21059 パラメータエラー このメッセージタイプはbig_push_durationをサポートしていません 401

    プッシュ制限

    メーカーチャネル タイトル長 コンテンツ長 敏感語 その他の注意事項
    Engagelabチャネル < 50文字 制限なし、但しメッセージ本体の総サイズを4000バイトに制限 - MTPushのNotificationの長さは4000バイトに制限されています。
    Huaweiチャネル < 40文字 < 1024文字 政府、指導者、台湾独立などに関するコンテンツを禁止 デフォルトの[マーケティング通知]権限はサイレント通知です;サイレントプッシュにはサウンド、振動などのアラートはありません。
    Gloryチャネル 制限なし、但しメッセージ本体の総サイズ < 4096バイト 制限なし、但しメッセージ本体の総サイズ < 4096バイト 政府、指導者、台湾独立などに関するコンテンツを禁止 -
    Phantomチャネル < 32文字 < 100文字 「#」などの特殊文字を禁止 メッセージはMeizu携帯電話の右上隅の[Meizuメッセージボックス]に保存される場合があります。漢字と英字はどちらも1文字としてカウントされます。
    Xiaomiチャネル < 50文字 < 128文字 「#」、「>>」などの特殊文字を禁止 メッセージは通知バーの重要でない通知に表示される場合があります。漢字と英字はどちらも1文字としてカウントされます。
    OPPOチャネル < 32文字 < 200文字 まだ説明がありません 通知権限はデフォルトで無効になっています。漢字と英字はどちらも1文字としてカウントされます。
    vivoチャネル < 40文字 < 100文字 「#」などの特殊文字や正式なメッセージ(例:単なる数字、単なる英語など)を禁止 英字は1文字としてカウントされ、漢字は2文字としてカウントされます。通知権限はデフォルトで無効になっています。同じデバイスからの運用メッセージの数は1日あたり5つに制限されています。同じデバイスからの同じ運用メッセージを同日にプッシュすることはできません。
    APNSチャネル < 20文字(40英字) 通知センターとロックスクリーンには最大110文字(55漢字)が表示されます。トップポップアップには最大62文字(31漢字)が表示され、長いメッセージは省略記号で表示されます。 まだ説明がありません まだ説明がありません

    多言語コード

    言語 言語コード
    英語 en
    アラビア語 ar
    中国語(簡体字) zh-Hans
    中国語(繁体字) zh-Hant
    チェコ語 cs
    デンマーク語 da
    オランダ語 nl
    フランス語 fr
    ドイツ語 de
    ヒンディー語 hi
    イタリア語 it
    日本語 ja
    韓国語 ko
    マレー語 ms
    ロシア語 ru
    スペイン語 es
    タイ語 th
    ベトナム語 vi
    インドネシア語 id
    ノルウェー語 no
    スウェーデン語 sv
    ポーランド語 pl
    トルコ語 tr
    ヘブライ語 he
    ポルトガル語 pt
    ルーマニア語 ro
    ハンガリー語 hu
    フィンランド語 fi
    ギリシャ語 el
    icon
    お問い合わせ